gpt4 book ai didi

python - 为什么调用其他方法的类方法应该用 'self' 调用?

转载 作者:太空宇宙 更新时间:2023-11-04 09:56:35 26 4
gpt4 key购买 nike

当我阅读这篇文章时 tutorial关于 tkinter 我在 Python 中使用 GUI 的第一步,我意识到在 __init__ 函数中调用了一个类函数。

我想知道,为什么在 __init__ 函数中调用类函数时必须声明 self.class_function()

我找到了 this下面这个答案的问题,它只是说它必须被称为 self.class_function 而不是 class_function,没有提供关于为什么必须这样做的任何概念或解释:

class MyClass():
def __init__(self, filename):
self.filename = filename

self.stat1 = None
self.stat2 = None
self.stat3 = None
self.stat4 = None
self.stat5 = None
self.parse_file()

def parse_file(self):
#do some parsing
self.stat1 = result_from_parse1
self.stat2 = result_from_parse2
self.stat3 = result_from_parse3
self.stat4 = result_from_parse4
self.stat5 = result_from_parse5

最佳答案

我的理解是,您必须使用 self.method_name 而不是 method_name 调用方法的原因是,在幕后,Python 替换了 self 部分到方法的第一个参数。

您可以通过定义一个名为 Foo 的类来自行测试:

class Foo:
def __init__(self):
self.fun()
def fun(self):
print("fun")

您实际上可以通过执行以下操作来调用 fun() 方法:

foo = Foo()
Foo.fun(foo)

这与在类中执行 self.fun() 相同。

请注意,您不能静态访问私有(private)字段(例如 Foo._private_method(foo)。)

关于python - 为什么调用其他方法的类方法应该用 'self' 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45559504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com