最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python基于staticmethod裝飾器標(biāo)示靜態(tài)方法

 更新時間:2020年10月17日 09:52:42   作者:lincappu  
這篇文章主要介紹了Python基于staticmethod裝飾器標(biāo)示靜態(tài)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

英文文檔:

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.

  標(biāo)示方法為靜態(tài)方法的裝飾器

說明:

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

>>> 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') # 類調(diào)用的時候,將'en'傳給了lang參數(shù)
en
Welcome!

>>> a.sayHello() # 類實(shí)例對象調(diào)用的時候,將對象本身自動傳給了lang參數(shù),不能再接收參數(shù)
<__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函數(shù)功能就是將一個方法定義成類的靜態(tài)方法,正確的方法是使用 @staticmethod裝飾器,這樣在實(shí)例對象調(diào)用的時候,不會把實(shí)例對象本身傳入靜態(tài)方法的第一個參數(shù)了。

# 使用裝飾器定義靜態(tài)方法
>>> 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') #類調(diào)用,'en'傳給了lang參數(shù)
en
Welcome!

>>> b = Student('Kim') #類實(shí)例對象調(diào)用,不再將類實(shí)例對象傳入靜態(tài)方法
>>> 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') #類實(shí)例對象調(diào)用,'zh'傳給了lang參數(shù)
zh
你好!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

新营市| 樟树市| 灌云县| 任丘市| 长沙县| 九寨沟县| 博白县| 康乐县| 寿光市| 皋兰县| 金溪县| 龙门县| 永福县| 鹤庆县| 思南县| 大邑县| 阜平县| 青阳县| 云霄县| 辽源市| 高台县| 房产| 射阳县| 新民市| 武义县| 凌源市| 泾川县| 南平市| 乌兰察布市| 金塔县| 光泽县| 环江| 华坪县| 庐江县| 绥德县| 通山县| 库尔勒市| 军事| 莱阳市| 柯坪县| 松原市|