更新时间:2023-11-10 来源:黑马程序员 浏览量:

在Python中,我们可以使用getattr()函数来动态获取对象的属性,而使用setattr()函数来动态设置对象的属性。以下是关于这两个函数的详细说明和示例代码:
getattr(object, name[, default])函数用于获取对象的属性值。其中,object是要获取属性的对象,name是属性的名称,default是可选参数,表示在属性不存在时返回的默认值。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 创建一个Person对象
person = Person("Alice", 25)
# 动态获取属性
name_value = getattr(person, 'name')
age_value = getattr(person, 'age')
print(f"Name: {name_value}, Age: {age_value}") 在这个例子中,getattr()函数用于获取person对象的name和age属性的值。

setattr(object, name, value)函数用于设置对象的属性值。其中,object是要设置属性的对象,name是属性的名称,value是要设置的属性值。
class Car:
def __init__(self, make, model):
self.make = make
self.model = model
# 创建一个Car对象
car = Car("Toyota", "Camry")
# 动态设置属性
setattr(car, 'make', 'Honda')
setattr(car, 'color', 'Blue') # 如果属性不存在,则会创建新的属性
# 打印设置后的属性值
print(f"Make: {car.make}, Model: {car.model}, Color: {getattr(car, 'color', 'N/A')}")在这个例子中,setattr()函数用于设置car对象的make属性为'Honda',并创建一个新的属性color并设置其值为'Blue'。
这两个函数允许我们在运行时处理对象的属性,使代码更加灵活和动态。需要注意的是,过度使用动态属性可能会导致代码可读性下降,因此建议大家考虑何时使用这些功能。
毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27