python反射
判断对象是否存在对应的属性和方法,返回一个bool值。作用:通过字符串的形式操作对象的属性和方法。获取指定对象的属性和方法。
·
反射
作用:通过字符串的形式操作对象的属性和方法
getattr
获取指定对象的属性和方法
用法:
变量名 = getattr(对象名, '属性', 默认值)
注:
默认值:当对象中查找不到对应的属性和方法时,进行返回避免报错
获取属性
class User:
def __init__(self,name,money,age):
self.name = name
self.__money = money
self.age = age
@property
def money(self):
return self.__money
def get_money(self):
print(f'用户{self.name},余额{self.__money}')
hz = User('华子', 10000, 20)
# 如果获得到了对象属性,就返回对应属性值,如果没有就返回0
tt = getattr(hz, 'name', 0)
rr = getattr(hz, 'gendter', 0)
print(tt)
print(rr)
获取方法
返回所获取的函数名
class User:
def __init__(self,name,money,age):
self.name = name
self.__money = money
self.age = age
@property
def money(self):
return self.__money
def print_money(self):
print(f'用户{self.name},余额{self.__money}')
hz = User('华子', 10000, 20)
func = getattr(hz,'print_money') # 返回函数名
func()
setattr
设置对象属性值
用法:
setattr(对象名, '属性名', 属性值)
class User:
def __init__(self,name,money,age):
self.name = name
self.__money = money
self.age = age
@property
def money(self):
return self.__money
def print_money(self):
print(f'用户{self.name},余额{self.__money}')
hz = User('华子', 10000, 20)
# 设置name的值为小川
setattr(hz, 'name', '小川')
print(hz.name)
hasattr
判断对象是否存在对应的属性和方法,返回一个bool值
用法:
变量名 = hasattr(对象名, '属性名或方法名')
判断属性
class User:
def __init__(self,name,money,age):
self.name = name
self.__money = money
self.age = age
@property
def money(self):
return self.__money
def print_money(self):
print(f'用户{self.name},余额{self.__money}')
hz = User('华子', 10000, 20)
outcome = hasattr(hz, 'name')
print(outcome)
判断方法
class User:
def __init__(self,name,money,age):
self.name = name
self.__money = money
self.age = age
@property
def money(self):
return self.__money
def print_money(self):
print(f'用户{self.name},余额{self.__money}')
hz = User('华子', 10000, 20)
out = hasattr(hz, 'print_money')
print(out)
delattr
删除对象属性
用法:
delattr(对象名, '对象属性')
class User:
def __init__(self,name,money,age):
self.name = name
self.__money = money
self.age = age
@property
def money(self):
return self.__money
def print_money(self):
print(f'用户{self.name},余额{self.__money}')
hz = User('华子', 10000, 20)
# 删除age这个属性
delattr(hz, 'age')

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)