標籤(空格分隔): python
python中類的定義,括號內是繼承的類,所有的類都預設繼承自object類
class
student
(object):
def__init__
(self, name, score):
self.__name = name
self.__score = score
意思是直接在類裡面定義函式,去呼叫、顯示其它函式的結果。而不是在類外訪問。
外部訪問,在類外定義函式訪問類裡面的資料
>>> def print_score(std):
... print '%s: %s' % (std.name, std.score)
...>>> print_score(bart)
bart simpson: 59
封裝後的訪問,直接在類內定義訪問的函式
>>> bart.print_score()
bart simpson: 59
變數前邊有兩個下劃線,是私有變數。只有類內部可以訪問,外部不能訪問,一般這樣的私有變數,都有配套的get,set函式。如果非要在類外訪問,可以用get函式訪問,用set函式修改
比如,在類外通過物件呼叫,會失敗
>>> bart.__name
traceback (most recent call last):
file
"", line 1, in
attributeerror
:'student' object has no attribute '__name'
class
student
(object):
...def
set_score
(self, score):
self.__score = score
乙個下劃線,意思是我雖然可以訪問,但不要隨便訪問。
前面兩個下劃線,後面兩個下劃線,是特殊變數,特殊變數在可以訪問,
繼承 當子類和父類都存在相同的run()方法時,我們說,子類的run()覆蓋了父類的run(),在**執行的時候,總是會呼叫子類的run()。這樣,我們就獲得了繼承的另乙個好處:多型。
父類
class
animal
(object):
defrun
(self):
print
'animal is running...'
子類
class
dog(animal):
defrun
(self):
print
'dog is running...'
defeat
(self):
print
'eating meat...'
繼承
class
dog(animal):
pass
class
cat(animal):
pass
再次執行
dog = dog()
dog.run()
cat = cat()
cat.run()
結果
running...
cat is
running...
繼承了就有多型了。
繼承了就具有父類的方法,然後子類就能夠覆寫父類方法。
這樣的好處就是,乙個方法名在不同的子類裡具有不同的作用,這就是多型。
定義乙個函式,它的傳入引數型別為animal類物件,也可以為annimal的派生類物件,dog,cat,它會自動呼叫子類的run函式
def
run_twice
(animal):
animal.run()
animal.run()
玩轉python(6)協程
多工系統一般都需要解決乙個問題 多個任務如何排程。搶占式排程就是一種很常見的任務排程機制。以單核模式下的程序排程為例,乙個程序處於執行狀態,其他的處於就緒佇列,等到當前執行的程序放棄cpu的使用權,系統將cpu立刻分配給新到達的程序,由於任務的執行順序是不確定的,看上去就像一堆任務在競爭cpu的使用...
演算法學習 python 6
氣泡排序 coding utf 8 def bubblesort list1 for j in range 0,len list1 1 增加乙個計數器 count 0 for i in range len list1 1 j,j,1 if list1 i list1 i 1 list1 i list...
玩轉python(6)協程
多工系統一般都需要解決乙個問題 多個任務如何排程。搶占式排程就是一種很常見的任務排程機制。以單核模式下的程序排程為例,乙個程序處於執行狀態,其他的處於就緒佇列,等到當前執行的程序放棄cpu的使用權,系統將cpu立刻分配給新到達的程序,由於任務的執行順序是不確定的,看上去就像一堆任務在競爭cpu的使用...