Ofe*_*.T. 2 python reference class-attribute
我想知道你怎么认为从类中的函数访问类属性的方法.我没有在PEP8中找到一个参考或一个关于它的流行问题.例如
class MyClass(object):
BAR = 1
def foo(self):
# Way A:
print(self.BAR)
# Way B:
print(MyClass.BAR)
Run Code Online (Sandbox Code Playgroud)
通过'self'访问似乎是合理的,因为属性由同一个类拥有,对于明显的同类引用具有近似引用.另一方面,通过类名称本身的访问是清楚的,因为它是静态的并且使得使用的起源清晰,并且因为它与类的名称配对而更加清晰.
当明确地命名的类名,可以防止从子类覆盖你的属性.
另一方面,使用self可以提供这种灵活性.请考虑以下代码:
class MyClass(object):
BAR = 1
def foo(self):
# Way A:
print(self.BAR)
# Way B:
print(MyClass.BAR)
class SubClass(MyClass):
BAR = 2
class SubClass2(MyClass):
pass
# output
>>> a = SubClass()
>>> a.foo()
2
1
>>> b = SubClass2()
>>> b.foo()
1
1
Run Code Online (Sandbox Code Playgroud)