谢谢你查我的帖子。我想我有一个很简单的疑问。。但如果太简单了,请原谅我。我正在努力学习python。 总之。。我有一个可以有五个属性的对象。 所以假设当我初始化类时,它是这样的
class Foo:
def __init__ (self, argA = None, argB = None, argC = None, argD = None....)
在某个地方我有一个叫做获取特征的方法
^{pr2}$所以基本上我要把所有这些特性都列在一个列表中。 但问题是。 在初始化过程中,如您所见,所有参数都是可选的。。 但是当我得到特性时,我只需要那些初始化过的特性 现在一个天真的方法是写一个大的if-else语句,但是正如Scott Myers在is book中所写的那样。。每当你看到自己在写一个代码“如果对象是a类型,做一些事情,如果对象是类型B,做其他事情。。。那就给自己一巴掌……” 获取只包含初始化的元素的特性的好方法是什么。 谢谢
所有属性都可以作为字典在对象的
__dict__
属性中找到(键->属性名称,值->属性值)。您可以通过列表理解和筛选未初始化的属性来筛选未初始化的变量:您可能还希望收集具有特定类型的属性,例如字符串(
^{pr2}$"str"
)、整数("int"
)等:将功能名称词典保持为布尔启用/禁用。这比让所有这些变量浮动要好得多。在
示例:
^{pr2}$相关问题 更多 >
编程相关推荐