python基礎 反射

2021-09-02 22:37:09 字數 1158 閱讀 8214

#反射 *****

# 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('hahaha')

alex = teacher()

for k in teacher.dic:

print(k)

key = input('輸入需求 :')

# print(teacher.dic[key])

if hasattr(alex,teacher.dic[key]):

func = getattr(alex,teacher.dic[key])

func()

# # alex.show_student() 'show_student'

# func = getattr(alex,'show_student')

# func()

# hasattr getattr delattr

# if hasattr(teacher,'dic'):

# ret = getattr(teacher,'dic') # teacher.dic # 類也是物件

# # ret2 = getattr(teacher,'func') # 類.方法 teacher.func

# # ret2()

# print(ret)

# menu = teacher.dic

# for k in menu:

# print(k)

# 通過反射

# 物件名 獲取物件屬性 和 普通方法

# 類名 獲取靜態屬性 和類方法 和 靜態方法

# 普通方法 self

# 靜態方法 @staticmethod

# 類方法 @classmethod

# 屬性方法 @property

# 繼承

# 封裝的

python基礎學習 反射

所謂的反射,就是通過字串去訪問類或物件成員,比如如果乙個student類有乙個name物件屬性,那麼就可以通過乙個 name 字串去訪問student物件的name屬性 如python可以通過hasattr 函式來獲取乙個物件是否有某個屬性 class student def init self,n...

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基礎 反射和異常

反射 通俗的說就是你給乙個字串,我就能匹配到和字串相同的函式進行呼叫 反射舉例說明 def bulk self print s is yelling self.name class dog object def init self,name self.name name defeat self,fo...