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

python菜鸟求教一个__init__的问题

python菜鸟求教一个__init__的问题

哆啦的时光机 2018-07-18 11:09:19
在学习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这种方式,还有其他脚本语言也是这样的。

查看完整回答
反对 回复 2018-07-19
  • 3 回答
  • 0 关注
  • 332 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信