python基礎學習 反射

2021-08-10 23:57:36 字數 840 閱讀 4647

所謂的反射,就是通過字串去訪問類或物件成員,比如如果乙個student類有乙個name物件屬性,那麼就可以通過乙個"name"字串去訪問student物件的name屬性

如python可以通過hasattr()函式來獲取乙個物件是否有某個屬性

>>> class student:

def __init__(self,name,age):

self.name = name

self.age = age

>>> s = student("xiaobing",22)

>>> print s.name

xiaobing

>>> print s.age

22>>> hasattr(s,"name")

true

>>> hasattr(s,"***")

false

>>> 

可以通過getattr()函式來獲取物件的某個屬性的值

>>> getattr(s,"name")

'xiaobing'

>>> getattr(s,"age")22

可以通過setattr()函式去設定物件的屬性的值

>>> setattr(s,"name","xiaoming")

>>> s.name

'xiaoming'

>>> 

可以通過dir()函式獲取物件擁有哪些成員

>>> dir(s)

['__doc__', '__init__', '__module__', 'age', 'name']

>>> 

當然,類的函式也差不多,因為在python中類的函式和屬性是同等地位的

python基礎 反射

反射 name alex name class teacher dic def show student self print show student def show teacher self print show teacher classmethod def func cls print h...

python基礎7 3 反射

反射相關的四個函式hasattr getattr setattr delattr,下面分別來演示每乙個函式的用法。author mr.xue 2019.10.30 class dog object def init self,name self.name name defeat self print...

python 反射學習

一 反射的方法 hasattr obj,name str 判斷 object 是否有 name str 這個方法或者屬性 getattr obj,name str 獲取 object 物件與 name str 同名的方法或者函式 setattr obj,name str,value 為 object...