在学习python,看到__init__这个地方不太懂,下面是学习资料上的一段代码:#!/usr/bin/python# Filename: class_init.pyclass Person: def __init__(self, name): self.name = name def sayHi(self): print 'Hello, my name is', self.namep = Person('Swaroop')p.sayHi()输出:$ python class_init.pyHello, my name is Swaroop不太明白__init__方法的必要性就自己写了一个没用__init__的模块 #!/usr/bin/python # Filename: class_test.py class Person: def sayHi(self, name): self.name = name print 'Hello, my name is', self.name p = Person('Swaroop') p.sayHi()报错:$ python class_test.py Traceback (most recent call last): File "class_test.py", line 9, in <module> p = Person('Swaroop')TypeError: this constructor takes no arguments希望能有前辈给解答一下我自己的代码报错的原因,希望能从程序运行的流程讲解一下__init__的用处。谢谢。
3 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
__init__类似与C++或者Java,C#里面的构造函数,只不过C++,Java,C#里面的this参数是隐藏的,不需要用户显示的写出来,但是在python,this参数(你可以自己命名为任意 合法变量名称,不一定是self)需要自己手动显示的定义,并且放在第一个参数。类似的F#语言在定义类的时候也是使用python这种方式,还有其他脚本语言也是这样的。
- 3 回答
- 0 关注
- 332 浏览
添加回答
举报
0/150
提交
取消