我在学习类这一块的时候,发现出现了这样的问题。
刚刚查询了一下,有人说是因为这两个因素,可是我这两个貌似都是对的,所以我想来咨询一下
以及我想问一下,这个sit(self)中的self
是什么用的啊,我看书上写的是自动传入实参,但是感觉理解的有点迷糊
1.init写成了int
2._init__这个地方前后是两个""
我在学习类这一块的时候,发现出现了这样的问题。
刚刚查询了一下,有人说是因为这两个因素,可是我这两个貌似都是对的,所以我想来咨询一下
以及我想问一下,这个sit(self)中的self
问题应该是在__init__ 这里,因为初始实例化的对象的这个__init__ 这里前后有两个下划线,类似于java的构造器,如果不是这个形式的,就会认为是类似于只有java默认的无参构造器。所以给这个前后补齐两个下划线,就代表实例化时可以传入两个参数了,如果没有这个形式的__init__, 就应该是认为实例化对象时,是无参的。
参考链接:
Python创建对象的七种方式_Python 学习者的博客-CSDN博客_python 创建对象
https://www.jb51.net/article/230513.htm
class Dog:
def __init__(self,name,age):
self.name=name
self.age=age
def sit(self):
print(f'{self.name} is now sitting.')
def roll_over(self):
print(f'{self.name} rolled over!')
my_dog = Dog('willie' , 6)
print(f'my dog is {my_dog.age} years old')