1、 類與物件
物件是類的例項。換句話說,類主要定義物件的結構,然後我們以類為模板建立物件。類不但包含方法定義,而且還包含所有例項共享的資料。
我們可以使用關鍵字class
定義 python 類,關鍵字後面緊跟類的名稱、分號和類的實現。
class
turtle
:# python中的類名約定以大寫字母開頭
"""關於類的乙個簡單例子"""
# 屬性
color =
'green'
weight =
10 legs =
4 shell =
true
mouth =
'大嘴'
# 方法
defclimb
(self)
:print
('我正在很努力的向前爬...'
)def
run(self)
:print
('我正在飛快的向前跑...'
)def
bite
(self)
:print
('咬死你咬死你!!'
)def
eat(self)
:print
('有得吃,真滿足...'
)def
sleep
(self)
:print
('困了,睡了,晚安,zzz'
)tt = turtle(
)print
(tt)
# <__main__.turtle object at 0x0000007c32d67f98>
print
(type
(tt))#
print
(tt.__class__)
# print
(tt.__class__.__name__)
# turtle
tt.climb(
)# 我正在很努力的向前爬...
tt.run(
)# 我正在飛快的向前跑...
tt.bite(
)# 咬死你咬死你!!
# python類也是物件。它們是type的例項
print
(type
(turtle)
)#
class
mylist
(list):
pass
lst = mylist([1
,5,2
,7,8
])9)
lst.sort(
)print
(lst)
# [1, 2, 5, 7, 8, 9]
class
animal
:def
run(self)
:raise attributeerror(
'子類必須實現這個方法'
)class
people
(animal)
:def
run(self)
:print
('人正在走'
)class
pig(animal)
:def
run(self)
:print
('pig is walking'
)class
dog(animal)
:def
run(self)
:print
('dog is running'
)def
func
(animal)
: animal.run(
)func(pig())
# pig is walking
python 的self
指的是類例項物件本身,相當於 c++ 的this
指標。
class
test
:def
prt(self)
:print
(self)
print
(self.__class__)
t = test(
)t.prt(
)# <__main__.test object at 0x000000bc5a351208>
#
類的方法與普通的函式只有乙個特別的區別 —— 它們必須有乙個額外的第乙個引數名稱(對應於該例項,即該物件本身),按照慣例它的名稱是self
。在呼叫方法時,我們無需明確提供與引數self
相對應的引數。
class
ball
:def
setname
(self, name)
: self.name = name
defkick
(self)
:print
("我叫%s,該死的,誰踢我..."
% self.name)
a = ball(
)a.setname(
"球a"
)b = ball(
)b.setname(
"球b"
)c = ball(
)c.setname(
"球c"
)a.kick(
)# 我叫球a,該死的,誰踢我...
b.kick(
)# 我叫球b,該死的,誰踢我...
Python基礎高階1
1 import sys sys.exit arg 退出程式 import sys import os import webbrowser as web web瀏覽器 pathname os.environ 獲取系統變數 print os.sep print os.pathsep print aaa...
python基礎 高階函式
把函式作為引數傳入,這樣的函式稱為高階函式,高階函式是函式式程式設計的體現。函式式程式設計就是指這種高度抽象的程式設計正規化。在python中,abs 函式可以完成對數字求絕對值計算。abs 10 10round 函式可以完成對數字的四捨五入計算。round 1.2 1 round 1.9 2def...
python 高階函式(二)
python中用關鍵字lambda表示匿名函式,匿名函式只有一條語句,很簡潔也沒有函式名 lambda 引數 返回值 lambda可以不傳引數,但必須要有返回值 f lambda x,y x y f 1,2 3 def f x,y return x y 以上兩個函式是等價的 裝飾器從字面上來說就是在...