我有一个方法foo()
,最终会返回名为 john 的Student
。
#!/usr/bin/python3
from random import randint
class Student(object):
name = ""
def foo():
if randint(0,1) == 0:
student = Student()
student.name = 'john'
else:
student = None
return student
我希望获得foo()
返回的学生的姓名(避免使用NPE并避免多次拨打foo()
)。
我的实际解决方案是:
student = foo()
print(student.name if student is not None else None)
是否可以在一行中执行此操作,而无需创建临时变量?
答案 0 :(得分:1)
您可以使用getattr(obj, 'attr_to_get', default_value)
。
在您的示例中,解决方案为getattr(foo(), 'name', None)
。