小甲鱼的嫖客 发表于 2020-7-16 11:28:00

自学到“类”有点迷糊了 init self 这些的用途书上写的看不懂?

class Car():
    def _init_(self,make,model,year):
      self.make=make
      self.model=model
      self.year=year
def zuhe_name(self):
    long_name=str(self.year)+' '+self.make+' '+ self.model
    return long_name.title()
new_car=Car("aodi","A4",16)
print(new_car.zuhe_name())

这段代码完全是按照书上一字不落的打出来了的,但是运行就是弹错。

开始学类明显感觉智商不够用了。
init self这是什么意思,在这段代码中起到的作用是什么。
        self.make=make
      self.model=model
      self.year=year
这三行中self是什么用途。
zuhe_name(self)
这行函数self的意思是什么呢

Twilight6 发表于 2020-7-16 11:38:10


__init__ 是双下划线,你只打了一个下划线

zuhe_name 方法你要设置在 Car 类里面,才能通过Car的实力对象调用这个 zuhe_name 方法,所以你这里少了个缩进

class Car():
    def __init__(self,make,model,year):
      self.make=make
      self.model=model
      self.year=year
    def zuhe_name(self):
      long_name=str(self.year)+' '+self.make+' '+ self.model
      return long_name.title()
   
new_car=Car("aodi","A4",16)
print(new_car.zuhe_name())

init self这是什么意思,在这段代码中起到的作用是什么?

__init__ 魔法方法是在实例化对象后自动会调用的,主要用于定义参数和初始化数值

这里的 self 是指实例化对象,比如说你这里的 new_car=Car("aodi","A4",16) 就是成功实例化对象并赋值给了 new_car 了,此时 self 就是指 new_car 这个实例对象

而 方法内带 self 的参数叫实例属性,在其他方法中可以共用

self.make=make
self.model=model
self.year=year
这三行中self是什么用途?

就是初始化数值,将传入的参数赋值为实例属性,才能供类内的其他方法调用,否则传入的参数是局部变量,无法给其他方法使用的

这行函数self的意思是什么呢?

self 刚刚上面已经说明了,参考上面的内容

小甲鱼的嫖客 发表于 2020-7-16 13:55:30

Twilight6 发表于 2020-7-16 11:38
__init__ 是双下划线,你只打了一个下划线

zuhe_name 方法你要设置在 Car 类里面,才能通过Car的实力 ...

很感谢你发了这么多,还是没能看懂,我自己研究研究吧。

Twilight6 发表于 2020-7-16 22:01:01

小甲鱼的嫖客 发表于 2020-7-16 13:55
很感谢你发了这么多,还是没能看懂,我自己研究研究吧。

那就设置下【最佳答案】吧

nahongyan1997 发表于 2020-7-21 12:57:09

白嫖党
页: [1]
查看完整版本: 自学到“类”有点迷糊了 init self 这些的用途书上写的看不懂?