【发布时间】:2017-01-28 17:29:29
【问题描述】:
所以我了解在 Python 中定义类时如何使用init。但是,我对在 init 函数中放入什么感到困惑,或者我是否应该使用它。例如:
这里我让用户在类被实例化时定义概念:
class Fruit(object):
def __init__(self, concept):
self.concept = concept
但我也可以这样做,用户可以自己更改概念属性:
class Fruit(object):
def __init__(self):
self.concept = "I am a fruit"
或者我可以完全放弃 init 函数:
class Fruit(object):
concept = "I am a fruit"
在每个示例中,我都可以更改概念属性
test = Fruit()
test.concept = 'Whatever I want'
所以我不确定我为什么首先使用 init 函数。似乎只方便预先定义所有属性。
此外,我怎么知道在 init 函数中放入什么以及在 init 之外定义什么?
【问题讨论】:
-
concept = "I am a fruit"行定义了一个 class 变量,而不是实例变量。 -
test = Fruit('Whatever I want', "other", "Another")看起来比test = Fruit() ; test.concept = 'Whatever I want' ; test.concept_2 = "other" ; test.concept_3 = "Another"更好 -
开始把所有东西都放进去
__init__,直到你遇到需要做一些不同的事情。 -
__init__应该初始化一个对象,使其处于有用状态。 -
@furas 所以它的风格/用户友好性比功能性更强?