为什么绑定方法可以将任何 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>>