【发布时间】:2013-06-02 10:33:25
【问题描述】:
几周前我开始学习 python(没有任何关于它的先验知识,也没有编程),并且被困在 Classes 中。 目前,“init”类方法让我感到困惑。事实上,它有什么作用?
这是我从特定 python 书中复制的 init 方法用法示例:
class Person:
def __init__(self, name):
self.name = name
def sayHi(self):
print "Hello, my name is", self.name
p = Person("George")
p.sayHi()
请纠正我,但没有 _init 方法也可以达到相同的结果,如下所示:
class Person:
def sayHi(self, name):
print "Hello, my name is", name
p = Person()
p.sayHi("George")
对吗?
那么 init 方法的目的到底是什么?
谢谢。
【问题讨论】:
-
当然你可以那样做,但是上课根本没有任何目的——你可以
def sayHi(name):...——上课的目的是将数据(属性如name、age、...)与处理数据的方法(函数)一起分组。你的Person类可以有一个age属性和一个have_birthday方法,例如增加年龄。 -
感谢mgilson的回复。在我正在阅读的书中(A byte of python)中,字段和方法是属性的子类别。好像你说的相反? "字段和方法统称为该类的属性。"
标签: python class initialization init