乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Python中的面向?qū)ο缶幊淘斀?上)

       imelee 2016-12-15

      創(chuàng)建類

      Python 類使用 class 關(guān)鍵字來創(chuàng)建。簡單的類的聲明可以是關(guān)鍵字后緊跟類名:

      復(fù)制代碼 代碼如下:

      class ClassName(bases):
          'class documentation string' #'類文檔字符串'
          class_suite #類體

      實(shí)例化

      通過類名后跟一對圓括號(hào)實(shí)例化一個(gè)類

      復(fù)制代碼 代碼如下:

      mc = MyClass() # instantiate class 初始化類
      ‘int()'構(gòu)造器

      def __int__(self):
          pass


      注意:self類似Java的this關(guān)鍵字作用,它代碼指向自身實(shí)例的引用

      類屬性

      python的屬性與Java和C++等面向?qū)ο笳Z言不同,python的屬性即包括了數(shù)據(jù)成員還包括函數(shù)元素,通過句點(diǎn)符號(hào)來訪問.

      特殊數(shù)據(jù)內(nèi)建屬性

      C.name 類C的名字(字符串)
      C.doc 類C的文檔字符串
      C.bases 類C的所有父類構(gòu)成的元組
      C.dict 類C的屬性
      C.module 類C定義所在的模塊(1.5 版本新增)
      C.class 實(shí)例C對應(yīng)的類(僅新式類中)

      特殊方法內(nèi)建屬性

      dir():獲得類屬性或者實(shí)例屬性名字列表.

      靜態(tài)變量屬性

      直接在class作用域定義

      復(fù)制代碼 代碼如下:

      class C(object):
          foo = 100

      實(shí)例變量屬性

      python的實(shí)例屬性與Java和C++等不同.在Java和C++中,實(shí)例屬性必須首先聲明/定義,而python實(shí)例屬性是動(dòng)態(tài)創(chuàng)建。設(shè)置實(shí)例的屬性可以在實(shí)例創(chuàng)建后任意時(shí)間進(jìn)行,也可以在能夠訪問實(shí)例的代碼中進(jìn)行。構(gòu)造
      器init()是設(shè)置這些屬性的關(guān)鍵點(diǎn)之一。

      復(fù)制代碼 代碼如下:

          def __init__(self, name, data):
              self.name = name
              self.data = "123'

      注意:self類似Java的this關(guān)鍵字作用,它代碼指向自身實(shí)例的引用

      方法屬性

      分為實(shí)例方法和類方法.實(shí)例方法只屬于一個(gè)實(shí)例;而類方法即屬于類所有,也屬于實(shí)例所有.

      實(shí)例方法

      復(fù)制代碼 代碼如下:

      class MyClass(object):
          def myNoActionMethod(self):
          pass

      注意:self類似Java的this關(guān)鍵字作用,它代碼指向自身實(shí)例的引用

      靜態(tài)方法

      靜態(tài)方法是類級(jí)別的方法,不需要實(shí)例化類就可以直接調(diào)用.有兩種方法定義

      ●裝飾器(常用)

      復(fù)制代碼 代碼如下:

          @staticmethod  
          def foo():
              print 'call static method'

      ●內(nèi)建函數(shù)
      復(fù)制代碼 代碼如下:

          def foo():
              print 'call static method'
          foo = staticmethod(foo) #靜態(tài)方法

      類方法

      靜態(tài)方法是類級(jí)別的方法, 與靜態(tài)方法不同的是,它必須顯示傳入cls類參數(shù);而且如果還需要調(diào)用類中其他的靜態(tài)方法,或者類方法的函數(shù), 要定義成類方法. 與靜態(tài)方法類似,也有兩種方法定義.

      ●裝飾器(常用)

      復(fù)制代碼 代碼如下:

          @classmethod   
          def bar(cls):
              print 'call class method and access static varible(staticVar): ', cls.staticVar

      ●內(nèi)建函數(shù)
      復(fù)制代碼 代碼如下:

      def bar(cls):
              print 'call class method and access static varible(staticVar): ', cls.staticVar
          bar = classmethod(bar)  #類方法

      實(shí)例詳解
      復(fù)制代碼 代碼如下:

      #!/usr/bin/python
      #coding=utf-8

      class Target(): #定義類Target
          'This is Target definition' #定義__doc__屬性

          staticVar = 'v1.0'  #定義靜態(tài)變量

          def __init__(self, name = 'default', data = 0): #定義構(gòu)造函數(shù)
              self.name = name    #實(shí)例變量
              self.data = data    #實(shí)例變量
              print "init instance"

          def main():
              print "this is a test function"

          '''
          可以用裝飾器定義靜態(tài)方法
          @staticmethod  
          def foo():
              print 'call static method'
          '''
          def foo():
              print 'call static method'
          foo = staticmethod(foo) #靜態(tài)方法

          '''
          可以用裝飾器定義類方法
          @classmethod   
          def bar(cls):
              print 'call class method and access static varible(staticVar): ', cls.staticVar
          '''
          def bar(cls):
              print 'call class method and access static varible(staticVar): ', cls.staticVar
          bar = classmethod(bar)  #類方法

          #只有調(diào)用本模塊的時(shí)候main()方法才生效
          if __name__ == '__main__':
              main()

      #實(shí)例化
      target = Target('aaa', 123)
      print 'name is: ', target.name
      print 'data is: ', target.data

      #打印__doc__屬性
      print 'target.__doc__ is: ', target.__doc__

      #打印類__dict__屬性
      print 'Target.__dict__ is: ', Target.__dict__

      #打印靜態(tài)變量
      print 'staticVar is: ', Target.staticVar

      #打印內(nèi)建函數(shù)dir()
      print 'dir() is: ', dir(Target)

      #調(diào)用靜態(tài)方法
      Target.foo()

      #調(diào)用類方法
      Target.bar()

      輸出

      復(fù)制代碼 代碼如下:

      this is a test function
      init instance
      name is:  aaa
      data is:  123
      target.__doc__ is:  This is Target definition
      Target.__dict__ is:  {'__module__': '__main__', 'foo': <staticmethod object at 0x7f3fd9310cc8>, 'bar': <classmethod object at 0x7f3fd9310d38>, 'staticVar': 'v1.0', 'main': <function main at 0x7f3fd930e758>, '__doc__': 'This is Target definition', '__init__': <function __init__ at 0x7f3fd930e6e0>}
      staticVar is:  v1.0
      dir() is:  ['__doc__', '__init__', '__module__', 'bar', 'foo', 'main', 'staticVar']
      call static method
      call class method and access static varible(staticVar):  v1.0

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多