慕哥0293995
2021-03-10 20:03
为什么用getattr不能获得name
class Person(object):
def __init__(self, name, gender, score):
self.name = name
self.gender = gender
self.score = score
def __str__(self):
return 'name:{},gender:{},score:{}'.format(self.name, self.gender, self.score)
def __repr__(self):
return 'name:{},gender:{},score:{}'.format(self.name, self.gender, self.score)
n = Person('Bob', 'Male', '97')
print(n)
m = getattr(n, 'name', 'void')
print(m)这样就没问题。 我看不懂你那第13行 b.tian 是个什么东西,而且getattr里对象和属性用逗号分隔,你用的啥?
getattr可以接收3个参数,用逗号隔开,第一个是对象,第二个是属性,第三个是返回值,返回值可以不写,但如果没有该属性就会报错。我写的加了返回值,如果属性不存在,就会返回 void ,而不会报错。
Python3 进阶教程
44767 学习 · 244 问题
相似问题