1. 程式人生 > 實用技巧 >🍖類和物件的繫結方法與非繫結方法

🍖類和物件的繫結方法與非繫結方法

引入

類的定義方法大致可以分為兩類 : 繫結方法和非繫結方法

其中繫結方法又可以分為繫結到物件的方法和繫結到類的方法

一.繫結方法

1.物件的繫結方法

  • 在類中沒有被任何裝飾器修飾的方法就是繫結給物件的方法, 這類方法專門為物件定製的
class Person:
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def print_name(self):
        print(self.name)

    def print_age(self):
        print(self.age)

P1 = Person('shawn',22)
P1.print_name()  # shawn
print(Person.__dict__['print_name'])  # <function Person.print_name at 0x00000168C1A54DC8>

通過__dict__檢視類的屬性字典, 我們可以發現 print_name 即為繫結到物件的方法, 這個方法不在物件的名稱空間中, 而是在類的名稱空間中

物件呼叫繫結給物件的方法, 這裡會有一個自動傳值的過程, 即自動將當前物件傳遞給方法的第一個引數, 也就是 "self" (約定俗成的叫self, 也可以叫別的)

若是類呼叫, 則第一個引數需要手動傳值