AttributeError: 'NoneType'对象没有属性。

4
我正在使用Python进行工作,我需要在类中编写一个函数,例如:
class asas(object):
    def b(self):
        self.name = "Berkhan"
a = asas()
a.b().name

我检查了这个模块。

Traceback (most recent call last):
  File "C:\Users\Berkhan Berkdemir\Desktop\new 1.py", line 5, in <module>
    a.b().name
AttributeError: 'NoneType' object has no attribute 'name'

我该怎么办?


1
name是实例的属性,所以你应该先执行a.b(),然后在第二步执行print(a.name) - Matthias
2个回答

6

NoneType表示你认为正在使用的是某个类或对象的实例,但实际上得到的是None。通常这意味着上面的赋值或函数调用失败或返回了意外的结果。参见参考文献

因此,你可以像这样做。

class asas(object):
    def b(self):
        self.name = "Berkhan"
        return self.name

a = asas()
print(a.b()) # prints 'Berkhan'

或者

class asas(object):
    def b(self):
        self.name = "Berkhan"
        return self

a = asas()
print(a.b().name) # prints 'Berkhan'

5

b()返回的是空值,因此它返回None

你可能需要像这样的内容:

class asas(object):
    def b(self):
        self.name = "Berkhan"
        return self
a = asas()
a.b().name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接