在Python 3.5中,说我有:
class Foo:
def __init__(self, bar, barbar):
self.bar = bar
self.barbar = barbar
我想["bar", "barbar"]
从班上得到名单。
我知道我可以做:
foo = Foo(1, 2)
foo.__dict__.keys()
有["bar", "barbar"]
没有不实例化对象的方法吗?
否,因为属性是动态的(所谓的实例属性)。考虑以下,
class Foo:
def __init__( self ):
self.bar = 1
def twice( self ):
self.barbar = 2
f = Foo()
print( list(f.__dict__.keys() ) )
f.twice()
print( list(f.__dict__.keys() ) )
在第一次打印中,仅f.bar
设置了属性,因此这是在打印属性键时显示的唯一属性。但是,在调用之后f.twice()
,您可以创建一个新属性,f
然后将其打印出来并显示bar
和barbar
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句