为什么绑定方法可以将任何 class 的实例作为 python 中的 'self' 参数?
why bound methods can take instance of any class as the 'self' parameter in python?
下面的代码运行用户定义的绑定方法 class。我不明白为什么您可以在该绑定方法中发送任何 class 的实例。根据我的理解,您应该只被允许发送 'current class' 或 'derived classes' 的实例。请解释一下。非常感谢任何帮助。
class class_name:
def function_name(self):
print("hello, world.")
a = 10
b = [1, "mayank"]
c = (2, "mahajan")
d = class_name()
class_name.function_name(a)
class_name.function_name(b)
class_name.function_name(c)
class_name.function_name(d)
class_name.function_name
不是方法,是普通函数。
>>> class_name.function_name
<function __main__.class_name.function_name(self)>
class_name().function_name
是一个绑定方法。
>>> class_name().function_name
<bound method class_name.function_name of <__main__.class_name object at 0x000001A71FA76A00>>
下面的代码运行用户定义的绑定方法 class。我不明白为什么您可以在该绑定方法中发送任何 class 的实例。根据我的理解,您应该只被允许发送 'current class' 或 'derived classes' 的实例。请解释一下。非常感谢任何帮助。
class class_name:
def function_name(self):
print("hello, world.")
a = 10
b = [1, "mayank"]
c = (2, "mahajan")
d = class_name()
class_name.function_name(a)
class_name.function_name(b)
class_name.function_name(c)
class_name.function_name(d)
class_name.function_name
不是方法,是普通函数。
>>> class_name.function_name
<function __main__.class_name.function_name(self)>
class_name().function_name
是一个绑定方法。
>>> class_name().function_name
<bound method class_name.function_name of <__main__.class_name object at 0x000001A71FA76A00>>