国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Python基于staticmethod裝飾器標示靜態方法

瀏覽:8日期:2022-07-08 08:49:33

英文文檔:

staticmethod(function)

Return a static method for function.

A static method does not receive an implicit first argument.

The @staticmethod form is a function decorator ? see the description of function definitions in Function definitions for details.

It can be called either on the class (such as C.f()) or on an instance (such as C().f()). The instance is ignored except for its class.

標示方法為靜態方法的裝飾器

說明:

1. 類中普通的方法,實際上既可以被類直接調用也可以被類的實例對象調用,但是被實例對象調用的時候,要求方法至少有一個參數,而且調用時會將實例對象本身傳給第一個參數

>>> class Student(object): def __init__(self,name): self.name = name def sayHello(lang): print(lang) if lang == ’en’: print(’Welcome!’) else: print(’你好!’) >>> Student.sayHello<function Student.sayHello at 0x02AC7810>>>> a = Student(’Bob’)>>> a.sayHello<bound method Student.sayHello of <__main__.Student object at 0x02AD03F0>>>>> Student.sayHello(’en’) # 類調用的時候,將’en’傳給了lang參數enWelcome!>>> a.sayHello() # 類實例對象調用的時候,將對象本身自動傳給了lang參數,不能再接收參數<__main__.Student object at 0x02AD03F0>你好! >>> a.sayHello(’en’) Traceback (most recent call last): File '<pyshell#7>', line 1, in <module> a.sayHello(’en’) TypeError: sayHello() takes 1 positional argument but 2 were given

2. staticmethod函數功能就是將一個方法定義成類的靜態方法,正確的方法是使用 @staticmethod裝飾器,這樣在實例對象調用的時候,不會把實例對象本身傳入靜態方法的第一個參數了。

# 使用裝飾器定義靜態方法>>> class Student(object): def __init__(self,name): self.name = name @staticmethod def sayHello(lang): print(lang) if lang == ’en’: print(’Welcome!’) else: print(’你好!’) >>> Student.sayHello(’en’) #類調用,’en’傳給了lang參數enWelcome!>>> b = Student(’Kim’) #類實例對象調用,不再將類實例對象傳入靜態方法>>> b.sayHello()Traceback (most recent call last): File '<pyshell#71>', line 1, in <module> b.sayHello()TypeError: sayHello() missing 1 required positional argument: ’lang’>>> b.sayHello(’zh’) #類實例對象調用,’zh’傳給了lang參數zh你好!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 神木县| 龙岩市| 盘锦市| 武强县| 攀枝花市| 抚远县| 天气| 玉林市| 苏州市| 新泰市| 白水县| 新丰县| 江永县| 临洮县| 太白县| 裕民县| 乐亭县| 二连浩特市| 佛坪县| 裕民县| 饶平县| 全椒县| 扎囊县| 桂东县| 泗阳县| 花垣县| 繁昌县| 浦城县| 合江县| 扶余县| 东乡县| 三门峡市| 阜城县| 保定市| 岗巴县| 蒙山县| 阜阳市| 莱阳市| 洪泽县| 五原县| 蕲春县|