当前位置: 代码迷 >> 综合 >> 获取属性(getattr)和设置属性(setattr)
  详细解决方案

获取属性(getattr)和设置属性(setattr)

热度:81   发布时间:2024-02-07 05:21:07.0

getattr:获取属性(动态获取某个属性的函数)
getattr(对象或者类名,属性名称(字符串形式),当没有此属性的时候需要提供的默认值)

class Phone:recharge=Truedef __init__(self,brand):self.brand=branddef call(self):print("正在打电话")def send_mag(self):print("正在发短信")mobile=Phone('苹果')
# print(mobile.brand)
print(mobile.color)   #如果获取不存在的属性会报错print(getattr(mobile,'brand','华为'))
print(getattr(mobile,'music','放音乐'))   #使用getattr获取属性
print(getattr(mobile,'recharge','充电很强'))

setattr:设置属性(动态获取某个属性的函数)
setattr(对象或者类名,属性名称(字符串形式),赋值的新值)
不管属性存不存在都会赋值给新的值
(和字典类似)有时候我们提前不知道属性名称是什么,是从别的地方拿过来的,例如测试用例:Excel,method:get,url: ‘http://’

class Phone:recharge=Truedef __init__(self,brand):self.brand=branddef call(self):print("正在打电话")def send_mag(self):print("正在发短信")mobile=Phone('苹果')
mobile.brand='华为'
# print(mobile.brand)setattr(mobile,'color','red')   #设置新属性
print(mobile.color)setattr(mobile,'brand','oppo')   #不管属性存不存在都会赋值给新的值
print(mobile.brand)