Python廖雪峰教程學習筆記 Day10

2021-10-03 02:53:25 字數 3660 閱讀 2186

養成乙個好的習慣只需要堅持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 ...