在学习python,看到__init__这个地方不太懂,下面是学习资料上的一段代码:
#!/usr/bin/python
# Filename: class_init.py
class Person:
def __init__(self, name):
self.name = name
def sayHi(self):
print 'Hello, my name is', self.name
p = Person('Swaroop')
p.sayHi()
输出:
$ python class_init.py
Hello, 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__的用处。谢谢。
繁华开满天机