【问题标题】: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)中,字段和方法是属性的子类别。好像你说的相反? "字段和方法统称为该类的属性。"

标签: python class initialization init


【解决方案1】:
__init__

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

【讨论】:

  • 好答案;它是相似的。 __init__ 是初始化器,__new__ 是分配器。
  • 我对 C++、Java 或任何其他编程语言一无所知。谢谢。
猜你喜欢
  • 2013-07-27
  • 2018-01-28
  • 2014-03-29
  • 1970-01-01
  • 1970-01-01
  • 2020-07-30
  • 2012-01-26
  • 2018-09-04
  • 1970-01-01
相关资源
最近更新 更多