ReadMe:
在捣鼓Python过程中,作为初学者难免会遇到一些问题、犯一些错误,很多错误可能是大家常犯的错误,所以决定将我自己的错误发布于此,供大家参考。
1,类的定义:_ _ init _ _()
下面的代码是Python中Dog类的定义。在这个类中定义了name和age两个属性,同时还定义了两个方法:sit()和rolled_over();
class Dog():
"""一次模拟小狗的简单尝试"""
def __init__(self,name,age):
"""初始化属性"""
self.name=name
self.age=age
def sit(self):
"""模拟小狗命令时蹲下"""
print(self.name.title() + "is now sitting.")
def rolled_over(self):
"""模拟小狗命令时打滚"""
print(self.name.title() + "rolled over!")
mydog = Dog("lily",20)
print(mydog.name)
print(mydog.age)
运行结果:
lily
20
在类的定义时,有个初始化方法“__init__”,如果是没有经验的初学者,可能会认为这个方法的名字就是在init两边各有一个下划线 _。哈哈,如果你是这样认为的,那么恭喜你,这个经验对你非常有价值!按照这种方法来实验一下,看看会有什么结果?
class Dog():
"""一次模拟小狗的简单尝试"""
def _init_(self,name,age):
"""初始化属性"""
self.name=name
self.age=age
def sit(self):
"""模拟小狗命令时蹲下"""
print(self.name.title() + "is now sitting.")
def rolled_over(self):
"""模拟小狗命令时打滚"""
print(self.name.title() + "rolled over!")
mydog = Dog("lily",20)
print(mydog.name)
print(mydog.age)
运行结果:
Traceback (most recent call last):
File "F:/Files/Pythonfiles/projects/main.py", line 19, in <module>
mydog = Dog("lily",20)
TypeError: Dog() takes no arguments
报错了!很显然,我们想的太简单了。那么,问题出在哪里呢?
其实是这样的:__init__并不是在init两边各有一个下划线_而是两个下划线,即:_ _init_ _.
博主作为Python初学者,分享自己在捣鼓Python时遇到的问题。主要介绍了Python类定义中初始化方法__init__,很多初学者会错误认为是两边各一个下划线,实际运行会报错,正确的是两边各两个下划线。
264

被折叠的 条评论
为什么被折叠?



