怎么調用類中的成員方法


 

舉一個例子簡單介紹類中的成員方法的調用方式

# ### 類中的成員方法怎么調用
class MyClass1:
    def func1(self):
        print(">> func1")

    def func2(cls):
        print(">> func2")

    def func3(self):
        print("------------func3開始------------")
        # self是類中的萬能對象,在類中使用self調用類自己的成員方法時,不需要額外傳參self或cls,可直接調用
        self.func1()
        self.func2()
        self.func5()
        self.func6()

        MyClass1.func1(self)
        MyClass1.func2(MyClass1)
        # self.func4()  # 這里會自動傳參類對象self,但是func4不接受任何參數,所以會報錯
        MyClass1.func4()
        print("------------func3結束------------")

    def func4():  # 這樣寫其實不合乎規范,因為對象是沒法調用這個方法的,但是運行時不會報錯
        print(">> func4")

    @staticmethod  # 靜態方法裝飾器
    def func5():
        print("靜態方法>> func5")

    @classmethod  # 綁定類方法裝飾器
    def func6(cls):
        print("綁定到類的方法>> func6")


# 實例化類對象
obj1 = MyClass1()

# 兩種方式調用func1函數,
obj1.func1()  # 對象調用func1,自動傳參obj1類對象
MyClass1.func1(obj1)  # 類調用func1,需要手動傳參obj1類對象

# 查看類中的調用
obj1.func3()

MyClass1.func2(MyClass1)  # 類調用func2,需要手動傳參MyClass1類

# obj1.func4()  # 對象調用func4,自動傳參obj1類對象,但是func4不接受任何參數,所以會報錯,所以對象是沒法直接調用func4函數的
MyClass1.func4()  # 類調用func4,原本沒有參數,不需要傳參

"""調用靜態方法,用類或對象調用都不需要傳參,定義靜態方法時也不要有self和cls參數,就像模塊方法一樣直接調用"""
MyClass1.func5()
obj1.func5()

"""用類調用調用綁定類方法會自動傳參MyClass1類,定義綁定類方法時需要有參數cls"""
MyClass1.func6()
obj1.func6()  # 對象也可以調用,會自動傳參MyClass1類,不用額外傳參

# 打印結果
"""
>> func1
>> func1
------------func3開始------------
>> func1
>> func2
靜態方法>> func5
綁定到類的方法>> func6
>> func1
>> func2
>> func4
------------func3結束------------
>> func2
>> func4
靜態方法>> func5
靜態方法>> func5
綁定到類的方法>> func6
綁定到類的方法>> func6
"""

# 調用類中的成員屬性就簡單很多了,直接調用不用考慮傳參
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM