Python學習筆記之五:類定義

這裏,我定義了一個類,初始化函數,Show函數,而且定義了文檔字符串,使用了help函數和__doc__來調用文檔字符串函數

>>> class FooClass(object):
    "This is my first class !"
    def __init__(self, name="NoName"):
        "This is a kinda construct funtion."
        self.name = name
    def show(self):
        "This is a print function."
        print 'My name is', self.name

        
>>> fc = FooClass('Tiejiaxiaobao')
>>> fc.show()
My name is Tiejiaxiaobao
>>> help(FooClass)
Help on class FooClass in module __main__:

class FooClass(__builtin__.object)
 |  This is my first class !
 |  
 |  Methods defined here:
 |  
 |  __init__(self, name='NoName')
 |      This is a kinda construct funtion.
 |  
 |  show(self)
 |      This is a print function.
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)

>>> help(FooClass.show)
Help on method show in module __main__:

show(self) unbound __main__.FooClass method
    This is a print function.

>>> FooClass.__doc__
'This is my first class !'
>>> FooClass.show.__doc__
'This is a print function.'
>>> 

 這裏,我分別測試了幾種類成員變量的聲明方式,試圖發現關於變量定義的規律測試

>>> class FooClass(object):
    #members list
    name = 'NoName'
    name1 = 'NoName1'
    name2 = 'NoName2'
    def __init__(self, name):
        self.name = name
    def func1(self):
        self.name1 = self.name
        print self.name1
    def func2(self):
        self.name2 = self.name1
        print self.name2

        
>>> obj = FooClass('Tie Jia Xiao Bao')
>>> obj.name2
'NoName2'
>>> obj.func2()
NoName1
>>> obj.func1()
Tie Jia Xiao Bao
>>> obj.func2()
Tie Jia Xiao Bao
>>> obj.__dict__
{'name2': 'Tie Jia Xiao Bao', 'name': 'Tie Jia Xiao Bao', 'name1': 'Tie Jia Xiao Bao'}
>>> obj = FooClass('Tie')
>>> obj.__dict__
{'name': 'Tie'}
>>> obj.func2()
NoName1
>>> obj.__dict__
{'name2': 'NoName1', 'name': 'Tie'}
>>> obj.name1
'NoName1'
>>> obj.__dict__
{'name2': 'NoName1', 'name': 'Tie'}
>>> obj.func1()
Tie
>>> obj.__dict__
{'name2': 'NoName1', 'name': 'Tie', 'name1': 'Tie'}
>>> 
相關文章
相關標籤/搜索