1. 程式人生 > >類--面向對象 --statismethod和classmethod裝飾器的用法

類--面向對象 --statismethod和classmethod裝飾器的用法

color 調用 不同的 需要 spa 括號 style 自動 blog

1)classmethod

class Classmethod_demo:

  def

class Classmethod:  #定義類名
    role=dog    
    @classmethod
    def func(cls):
          print(cls.role)

Classmethod.func()  
        

classmethod裝飾器的作用就是讓你在類裏面可以調用類裏面的左右元素,
但是會用cls代替類名(Classmethod),[email protected]
下面的函數括號裏面會自動顯示cls,而在下面的print裏面還可以調用類方法,也就是相當於Class
method.role。。。

2)staticmethod

class Chack:
    role=dog
    @staticmethod    
    def func():
        print(Chack.role)
Chack.func()

[email protected],下面的func()括號裏就不會有self,
靜態方法,讓類裏面的方法可以直接調用,就像正常函數一樣,但是他不能在類裏面調用類名。

總結:classmethod 和staticmethod之間有相同也有不同

相同的是:他們都不需要對象實例化就可以調用

不同的是:classmethod、一個會在類裏面產生一個cls表示這個類,可以用cls調用內部的方法,而staticmethod是靜態的,在內部不會產生元素

所有調用不了類名。

類--面向對象 --statismethod和classmethod裝飾器的用法