python:获取对象arg并在一行中检查NPE

标签 python nullpointerexception

我有一个方法foo(),它最终返回一个名为johnStudent

#!/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)

是否可以在一行中完成此操作,而不创建临时变量?

最佳答案

您可以使用getattr(obj, 'attr_to_get', default_value)

在您的示例中,解决方案是 getattr(foo(), 'name', None)

关于python:获取对象arg并在一行中检查NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38309938/

相关文章:

java - 为什么我的 Android 代码中出现空指针错误?

java - 什么是NullPointerException,我该如何解决?

python - 将 PNG 图像从文件夹转换为 JPG - Python

python - 在Python中设置路径

java - 解决 java.lang.NullPointerException 错误 将用户的输入传递给对象

java - NullPointerException .. 我的逻辑缺陷在哪里?

java - Android ComponentInfo RuntimeException 和 NullPointerException

python - Python 字典是否保证排序键?

python - Django - 从 csv 输出的外键关系获取条目

python - ' ☃'.encode("utf- 8") is different from ord(' ☃')