__init__ 方法有啥作用? [复制]
Posted
技术标签:
【中文标题】__init__ 方法有啥作用? [复制]【英文标题】:What does the __init__ method serve for? [duplicate]__init__ 方法有什么作用? [复制] 【发布时间】: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)中,字段和方法是属性的子类别。好像你说的相反? "字段和方法统称为该类的属性。"
【参考方案1】:
__init__
在 python 中类似于 c++ 或 java 中的构造函数。
【讨论】:
好答案;它是相似的。__init__
是初始化器,__new__
是分配器。
我对 C++、Java 或任何其他编程语言一无所知。谢谢。以上是关于__init__ 方法有啥作用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
对象的 __init__() 方法在 python 中做了啥? [复制]
@$_POST 与 $_POST.... 有啥区别? [复制]