我是学习编程和从Python开始的新手。我已经阅读了在类中使用 init ()函数并在某种程度上理解它的实用程序。但是,我仍然有点困惑,希望有人能澄清一下。
所以我有两组初步代码给出相同的输出,但是一个使用 init ()。第一个如下:
class person:
def who(self, name):
print('I am', name)
name=str('Joe')
person().who(name)
第二个在这里:
class person:
def __init__(self, name):
self.name = name
def who(self):
print('I am', self.name)
p = person('Joe')
p.who()
我的基本问题是,在我的代码的一般情况下,如果我采用第一种方法而不是第二种方法,或者我将通过第二种方法获得的内容,我会错过什么(在某些阶段可能会更复杂)。
谢谢!
PS:我的问题不是 init ()的意思(虽然这是相关的,当然我感兴趣),但为什么要使用 init ()使代码更好。
答案 0 :(得分:3)
我相信你错过了课程的主要目的:提供一个有凝聚力和模块化的数据和功能组。
您创建了一个班级人员,以便一个人掌握哪些信息? 例如,她的名字,生日和性别。
这是__init__()
的用途,它是一种内置方法,用于在出生后初始化一个人(即实例化时)。
例如,创建一个人后,你必须给它一个名字,一个生日和一个性别。因此,__init__()
强制始终将人员初始化为有效状态。这意味着你可以去街上并询问你遇到的任何人的名字,同时确保每个人都有一个。
至于你的第二个例子,更有意义的是,要求一个不知名的人名,或告诉她她的名字应该是什么?