帶參數報錯,不帶參數就正常
寫了下老師課堂上的代碼,運行起來老是報錯,發(fā)現只要帶了參數就報錯。這是為什么?
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__)
2016-10-29
我在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