Python“;“自我”;约定初始化vs方法
因此,我理解以下陈述是等价的Python“;“自我”;约定初始化vs方法,python,Python,因此,我理解以下陈述是等价的 class MyClass(object): def __init__(self): self.var = "hi" def some_method(self): print self.var #for the example below myClass= MyClass() 它接受对象并将其作为第一个参数self传递给some\u方法 但当我这样做的时候: myClass.some_method() MyClass.s
class MyClass(object):
def __init__(self):
self.var = "hi"
def some_method(self):
print self.var
#for the example below
myClass= MyClass()
它接受对象
并将其作为第一个参数self
传递给some\u方法
但当我这样做的时候:
myClass.some_method()
MyClass.some_method(myClass)
这个流程是如何工作的
我假设它有点不同,一些魔术发生在幕后(有人有一些内存要分配)
如何将其转换为\uuuuu init\uuuuuuuu(self)
?传递给\uuuu init\uuuu
MyClass
的是什么 MyClass()
创建一个全新的对象,该对象作为参数self
传递给\uuuu init\uuuuu(self)
。然后,您可以在self
上设置所需的任何字段,然后MyClass()
返回该字段。\uuuu init\uuuu()
方法在创建类实例后立即调用
myClass=myClass()
调用myClass.\uu新的\uuuu
方法来创建myClass
的实例。在这之后,MyClass.\uuuuu init\uuuuu
将使用此实例作为第一个参数进行调用
见文件:
对象。\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
(cls[,…])
调用以创建类cls的新实例
对象。\uuuuu init\uuuuu
(self[,…])
在创建实例时调用
只是一个小小的吹毛求疵:
object=MyClass()
重新定义对象,这可能不是您想要做的事情。:)@mrb:)挑剔,挑剔(重命名对象->myClass)
myClass= MyClass()