Skip to main content
 首页 » 编程设计

python之填写列表python

2025年05月04日12EasonJim

感谢您查看我的帖子。我想我可能对这个社区标准有一个非常简单的怀疑......但如果它太简单了请原谅我。我正在尝试学习 python。 所以无论如何.. 我有一个可以有五个属性的对象。 所以可以说当我初始化类时它是这样的

class Foo: 
    def __init__ (self, argA = None, argB = None, argC = None, argD = None....) 

在某个地方我有这个方法叫做 get features

    def getFeatures(self): 
     x = [self._argA, self._argB, self._argc... and so on] 

所以基本上我试图将所有这些功能放入一个列表中。 但这就是问题所在。 在初始化期间,如您所见,所有参数都是可选的。 但是当我执行 getFeatures 时,我只想要那些已初始化的功能 现在一个天真的方法是写一个大的 if else 语句,但正如 Scott Myers 在书中所写的那样......任何时候你看到自己编写代码“如果对象是类型 A 做某事,如果对象是类型 B 做其他事情...... .. 然后打你自己一巴掌..” getFeatures 的好方法是只包含已初始化的元素。 谢谢

请您参考如下方法:

def getFeatures(self): 
    return [field for field in (self._argA, ..., self._argE) if field is not None]