簡體   English   中英

為什么綁定方法可以將任何 class 的實例作為 python 中的“自我”參數?

[英]why bound methods can take instance of any class as the 'self' parameter in python?

下面的代碼運行用戶定義的 class 的綁定方法。 我不明白為什么您可以在該綁定方法中發送任何 class 的實例。 根據我的理解,您應該只被允許發送“當前類”或“派生類”的實例。 請解釋一下。 非常感謝任何幫助。

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不是方法,它是一個普通的 function。

>>> 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>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM