定義一個類
class Person:
'''這是文檔字符串'''
phone = None #這是類變量
def __init__(self, name, age = 20):
self.name = name #成員變量
self.age = age
def show(self):
print self.name
print self.age
p = Person("Mat")
print p.__doc__
p.phone = 10
p.show()
輸出:
Mat
20
- py允許在類或函數頭使用文檔字符串來描述其作用, 使用
函數名.__doc__
,類名.__doc__
或者類實例名.__doc_
來獲取其文檔字符串 - 每個函數必須帶一個參數, 是指向類實例的引用, 默認應該命名爲
self
- __init__函數爲構造函數, python自帶垃圾回收機制
- 類中分爲
類變量
和成員變量
, 兩者作用域不同, 可以理解爲類變量屬於類, 成員變量屬於類實例.
類變量可以通過類或者實例去調用,
成員變量只能通過實例調用
如果成員變量和類變量同名, 使用實例調用時默認先看實例變量
類變量屬於類, 每個對象分別在實例化時將類變量複製一份, 各個實例之間互不影響, C++的類靜態變量由所有對象共同持有 - python沒有訪問控制, 沒有權限控制, 所有變量都可以從外部調用, 可以在類成員加雙下劃線
__
實現僞私有化
寫一個類是否繼承object
的區別