class(類)
特點:乙個抽象的物件,是物件導向語言的核心,類可以不繼承或多繼承。
標識:class
例子:
class a(object):
"""這是乙個演示的類
"""count_a =
def __init__(self, a):
self.a = a
def str(self):
print 'count_a:%s, list_a:%s' % (self.count_a, self.a)
訪問類:
my_a = a(123)
my_a.str()
print my_a.__doc__
# 輸出結果
# count_a:[1], list_a:123
## 這是乙個演示的類
詳解:
count_a: 類a的類變數(全域性變數),可以通過a.count_a或my_a.count_a來訪問,生命週期為類a;
a: 為類a的成員變數,可以通過my_a.a訪問,生命週期為例項my_a。
my_a.___doc__:類的說明注析
在類中以雙下劃線(__)開頭的變數是私有變數(例項是不允許a.__host直接訪問的),以雙下劃線(__)開頭的方法可能是python自帶函式。
類繼承:
class a(object):
"""這是乙個演示的類a
"""count_a =
def __init__(self, a):
self.a = a
def str(self):
print 'count_a:%s, list_a:%s' % (self.count_a, self.a)
class b(a):
"""這是乙個演示類b,繼承了類a
"""def __init__(self, b):
super(b, self).__init__(b) # 初始化父類
self.b = b
def str(self):
print 'count_a:%s, list_a:%s' % (self.count_a, self.a)
my_a = a(123)
my_a.str()
my_b = b(234)
my_b.str()
# 輸出結果
# count_a:[1], list_a:123
# count_a:[1, 1], list_a:234
詳解:
super(b, self).__init__(b):# python新用法所建議的初始胡父類用法
my_b.str類中:繼承了a的count_a和a。
問題:
count_a:[1, 1]竟然是有兩個值?
原因:
因為count_a為a類的成員變數(全域性變數),並且count_a是乙個列表(經測試如果全域性變數為乙個int型別的,輸出結果則為預設值,這可能跟python各型別的儲存使用有關,
字元,元組,數字是不可以更改的物件,列表和字典都是指標)
注意
:當乙個類繼承了兩個或多個類的時候,
super(b, self).__init__(b)只會初始化class b(a, c)中的a
python 類class基礎簡明筆記
感謝莫煩老師 詳情class calculator 首字母要大寫,冒號不能缺 name good calculator 該行為class的屬性 price 18 def add self,x,y print self.name result x y print result def minus se...
python 函式def 和 類class 基礎
函式def python 函式 def 函式名 引數列表 函式體如果引數要指定資料型別,引數名 資料型別 num int str1 str list1 list dict1 dict set1 set def addnum a int b int,c int return a b c defaddn...
python基礎篇 python基礎篇(三)
使用者輸入 bb 歡迎來到中國資訊網,您的支援是我們的動力!bb n請輸入您的名字 aa input bb 此處可先定義變數,也可將要展示的內容直接輸入在裡面 print 歡迎您 aa 輸出歡迎來到中國資訊網,您的支援是我們的動力!請輸入您的名字 張三 輸入 張三 歡迎您 張三!結果 注意1 sub...