AttributeError:“ NoneType”对象没有属性“ arg1”

时间:2018-07-20 14:00:58

标签: python

我是python的新手,正试图弄清一个类的工作方式 这是我的代码,非常简单,但是我每次运行时都会得到AttributeError:'NoneType'对象没有属性'arg1'。

class testclass:
    def testmethod(self, arg1, arg2):
        self.arg1 = arg1
        self.arg2 = arg2
p = testclass().testmethod("input1", "input2")
print(p.arg1)

我知道到现在它已经发布了一百万次了,但我只是想不通

1 个答案:

答案 0 :(得分:1)

methods中的functionreturn时,defaultreturn None,如果您这样做:

p = testclass.testmethod('input', 'input'2)

您将变量p分配给None是因为testmethod不返回任何内容,如果使用这种情况,则可以返回self以获取self object

class testclass:
    def testmethod(self, arg1, arg2):
        self.arg1 = arg1
        self.arg2 = arg2
        return self
p = testclass().testmethod("input1", "input2")
print(p.arg1)

输出

input1

但是我认为最好使用constructor方法__init__

class testclass:
    def __init__(self, arg1, arg2):
        self.arg1 = arg1
        self.arg2 = arg2
p = testclass("input1", "input2")
print(p.arg1)