为什么有些方法作为自变量被召回?



这可能是一个愚蠢的问题。

我是编程新手,但是根据我的理解,我们需要使用nameofthemethod ()来调用一个方法。

我不明白为什么有时候,使用一个类,这个规则不再有效,而是我们使用self.nameofthemethod()来回忆它。不是自我。应该只对变量有效吗?

下面是一个例子:

class Statusbar:
def __init__(self, parent):
self.status = tk.StringVar()                             
self.status.set("PyText - 0.1 Gutenberg")
def update_status(self):
self.status.set("Your file has been saved")
def save(self):
self.update_status() # why the self? Shouldn't it be just update_status()?

没有粘贴整个代码,但我希望你能明白

由于方法(像类变量一样)是在类中定义的,并且是类的一部分,因此必须这样引用它们。在StatusBar之外调用update_status()时,必须调用StatusBar.update_status(),因为它是StatusBar类的一部分:

class Statusbar:
def __init__(self, parent):
self.status = tk.StringVar()                             
self.status.set("PyText - 0.1 Gutenberg")
def update_status(self):
self.status.set("Your file has been saved")
def save(self):
self.update_status()
sb = StatusBar(some_window) # Here we create an instance of StatusBar
sb.update_status() # Here, we call StatusBar's method: update_status()
在类中从调用update_status()也是如此。self,顾名思义,只是一个类引用自己的方式。当类调用self.update_status()时,它基本上是在说" Callmyupdate_status() method。"尝试打印self;输出将像这样:
<__main__.Statusbar object at 0x7efdd6445040>
关键是,由于update_status()是一个方法,因此是类的一部分(就像变量self.status一样),因此无论您是从内部调用它还是从类外部调用它,都必须将其视为类的一部分。

最新更新