我对 python 很陌生,在这些日子里我正在探索课程。我有一个关于类内部的属性和变量的问题:仅通过q=1在类的主体中定义属性与通过在类self.q=1内部定义有什么区别__init__?例如,以下两种可能性有什么区别?
class MyClass1:
q=1
def __init__(self,p):
self.p=p
def AddSomething(self,x):
self.q = self.q+x
Run Code Online (Sandbox Code Playgroud)
和
class MyClass2:
def __init__(self,p):
self.q=1
self.p=p
def AddSomething(self,x):
self.q = self.q+x
Run Code Online (Sandbox Code Playgroud)
例如的输出:
>>> my=MyClass1(2)
>>> my.p
2
>>> my.q
1
>>> my.AddSomething(7)
>>> my.q
8
Run Code Online (Sandbox Code Playgroud)
不取决于是否使用MyClass1或被MyClass2使用。inMyClass1和 inMyClass2都不会发生错误。