我是 Python 初学者。我知道空格对编译起着重要作用。所以我在同一个 python 脚本文件中有以下两个类:
class ClassA:
def __init__(self):
self.x = {}
def _methodA1():
# Something
def _methodA2():
# Something
class ClassB:
def _methodB1():
# Something
def _methodB2():
# Something
def MethodX():
print "Hello World"
(1)MethodX属于哪个类?
(2) 我们可以说 ClassB 是 ClassA 的内部类吗?
(3) 如果 MethodX 属于 ClassA,是否意味着 self.x 可以通过 MethodX 访问?
请您参考如下方法:
MethodX不属于任何类,它是一个全局函数,不是其中一个类的方法- 不,因为
ClassA和ClassB的缩进相同;ClassA的内部类将匹配ClassA 中方法定义的缩进
- 由于它不属于任何类,
MethodX无法直接访问任何实例的属性。除此之外,self必须被方法显式接受为第一个位置参数;由于MethodX不接受self,因此无法访问它。因此,您所有的方法都被破坏了;除非用@staticmethod修饰,否则它们需要接受至少一个位置参数(根据常规方法的约定称为self,而cls@classmethod的约定)。
