为了账号安全,请及时绑定邮箱和手机立即绑定

带参数报错,不带参数就正常

写了下老师课堂上的代码,运行起来老是报错,发现只要带了参数就报错。这是为什么?

class Programer(object):
    def __new__(cls, *args, **kwargs):
        print ("new", cls)
        print(args)
        return super(Programer,cls).__new__(cls, *args, **kwargs)


    def __init__(self,name = None,age= None ,language= None):
        self.name = name
        self.age = age
        self.language = language

if __name__ == '__main__':
    programer_unerror = Programer()
    print(programer_unerror.__dict__)

    programer_error = Programer('Alex')
    print(programer_error.__dict__)


正在回答

1 回答

我在python2.7上正常,python3.5出现了以上的问题。

如何修复:

return super(Programer,cls).__new__(cls, *args, **kwargs)

修改为:

return super(Programer,cls).__new__(cls)

这里讲的很清楚:

http://stackoverflow.com/questions/34777773/typeerror-object-takes-no-parameters-after-defining-new

http://stackoverflow.com/questions/34500737/typeerror-object-takes-no-parameters-with-python2-metaclass-converted-to-py


6 回复 有任何疑惑可以回复我~
#1

没事想学 提问者

非常感谢!终于明白了
2016-10-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

带参数报错,不带参数就正常

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信