【发布时间】:2023-03-27 20:37:01
【问题描述】:
我想实现一个类似于getattr的函数,但会接受一个点分字符串并遍历每个属性。
def getattr_multiple_level(obj, attr_string):
attr_names = attr_string.split('.')
next_level = obj
for attr_name in attr_names:
next_level = getattr(next_level, attr_name)
return next_level
class Test():
def make_name(self, pre, suffix=""):
return str(pre) + "_my_office_" + suffix
p = Test()
p.room = Test()
p.room.office = Test()
attr = getattr_multiple_level(p, 'room.office.make_name')
是否已经有内置方法可以做到这一点?或者在上面的代码中可以做哪些改进来处理所有可能的异常和边缘情况?
【问题讨论】:
标签: python oop object attributes