__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):...——上课的目的是将数据(属性如nameage、...)与处理数据的方法(函数)一起分组。你的 Person 类可以有一个 age 属性和一个 have_birthday 方法,例如增加年龄。 感谢mgilson的回复。在我正在阅读的书中(A byte of python)中,字段和方法是属性的子类别。好像你说的相反? "字段和方法统称为该类的属性。" 【参考方案1】:
__init__

在 python 中类似于 c++ 或 java 中的构造函数。

【讨论】:

好答案;它是相似的。 __init__ 是初始化器,__new__ 是分配器。 我对 C++、Java 或任何其他编程语言一无所知。谢谢。

以上是关于__init__ 方法有啥作用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

对象的 __init__() 方法在 python 中做了啥? [复制]

有啥作用? ... : ... 做? [复制]

@$_POST 与 $_POST.... 有啥区别? [复制]

Python中__init__()和self的有啥用

__init__(self) 在 Python 中是啥意思? [复制]

__all__ 在 __init__.py 中不生效? [复制]