小莱昂纳德的Python错误指南

博主作为Python初学者,分享自己在捣鼓Python时遇到的问题。主要介绍了Python类定义中初始化方法__init__,很多初学者会错误认为是两边各一个下划线,实际运行会报错,正确的是两边各两个下划线。

ReadMe:

在捣鼓Python过程中,作为初学者难免会遇到一些问题、犯一些错误,很多错误可能是大家常犯的错误,所以决定将我自己的错误发布于此,供大家参考。

1,类的定义:_ _ init _ _()

下面的代码是Python中Dog类的定义。在这个类中定义了nameage两个属性,同时还定义了两个方法: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_ _.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值