養成乙個好的習慣只需要堅持21天,day10
判斷物件型別,可以使用type()
函式:
type
(123)#
type()
# type
(none
)#
如果乙個變數指向函式或者類,也可以用type()
函式來判斷:
type
(abs
)#
types
模組中有很多定義的常量:
import types
deffn()
:pass
type
(fn)
==types.functiontype
# true
type
(lambda x:x)
==types.lambdatype
# true
使用isinstance()
如果要判斷class的型別,可以使用isinstance()
函式。day9中在學習繼承和多型的時候其中的繼承關係是:
object
-> animal -
> dog
首先建立不同類的物件:
a = animal(
)d = dog(
)print
(isinstance
(d,dog)
)print
(isinstance
(d,animal)
)# true
# true
還可以直接判斷變數型別:
isinstance
('abc'
,str
)# true
使用dir()
如果要獲得乙個物件的所有屬性和方法,可以使用dir()函式,它返回乙個包含字串的list
,比如,獲得乙個str
物件的所有屬性和方法:
dir
('abc'
)# ['__add__', '__class__',..., '__subclasshook__', 'capitalize', 'casefold',..., 'zfill']
通過dir()
得到的物件屬性,可以直接去呼叫,例如物件中包含有__len__()
方法:
print
(len
('abc'))
# 3print
('abc'
.__len__())
# 3
物件的屬性和方法可以判斷獲知,配合getattr()
、setattr()
以及hasattr()
,我們可以直接操作乙個物件的狀態:
class
myobject
(object):
def__init__
(self)
: self.x =
9def
power
(self)
:return self.x * self.x
obj = myobject
接下來使用getattr()
、setattr()
以及hasattr()
來測試物件的屬性:
hasattr
(obj,
'x')
# true
setattr
(obj,
'y',19)
hasattr
(obj,
'y')
# true
getattr
(obj,
'y')
# 19
給例項繫結屬性的方法是通過例項變數,或者通過self變數:
class
student
(objet)
: def__init__(self,name)
: self.name = name #通過self變數繫結name屬性
s = student(
'bob'
)s.score =
90# 通過例項變數繫結score屬性
如果想要給類繫結乙個屬性,就可以直接在class類中定義屬性:
class
student
(object):
name =
'student'
接下來,測試類的屬性:
s = student(
)# 建立例項s
print
(s.name)
# 列印name屬性,例項s沒有name屬性,就列印class類的name屬性
# student
print
(sudent.name)
# 列印類的name屬性
# student
s.name =
'tom'
# 給例項定義name屬性
print
(srudent.name)
# 類的name屬性並未改變
# student
練習
為了統計學生人數,可以給student類增加乙個類屬性,每建立乙個例項,該屬性自動增加:
class
student
(object):
count =
0def
__init__
(self, name)
: self.name = name
student.count+=
1def
get_count
(object):
return
object
.count
# 測試:
if student.count !=0:
print
('測試失敗!'
)else
: bart = student(
'bart'
)if student.count !=1:
print
('測試失敗!'
)else
: lisa = student(
'bart'
)if student.count !=2:
print
('測試失敗!'
)else
:print
('students:'
, student.count)
print
('測試通過!'
)# students: 2
# 測試通過!
python廖雪峰教程 學習筆記
如何用字元來描述字元 d匹配數字 digit w匹配字母或數字 word s可以匹配空格 space 表示任意個字元,表示至少乙個字元 表示0個或1個字元,表示n個字元,表示n m個字元 可以匹配任意字元 例如 kongxiangyu w如何做到更精確的匹配?規定數字 字母或者下劃線 0 9a za...
廖雪峰python教程學習筆記(函式)
1.max函式可以接收任意多個引數,並返回最大的那個 2.函式名其實就是指向乙個函式物件的引用,完全可以把函式名賦給乙個變數,相當於給這個函式起了乙個別名 3.在python中,定義乙個函式要用def語句,依次寫出函式名 括號 括號中的引數和冒號,然後在縮排塊中編寫函式體,函式的返回值用return...
廖雪峰python教程筆記1
d.get thomas 1 檢查字典中是否有 thomas 的key,沒有返回 1,沒有指定返回值預設返回none d.pop bob 刪key 字典key不能為列表 s set 1,2,3 set需要以list作為輸入集合,不能重複且無順序。s.add s.remove s1 s2 s1 s2 ...