jordanis1 2022-04-29 20:16 采纳率: 80%
浏览 56
已结题

有些参数为什么不放进__init__()中?

关于这段代码:

class Car:
def init(self,make,model,year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0

2个问题:
1、为什么不把odometer_reading=0 放进 init()中?然后代码如下:
class Car:
def init(self,make,model,year,odometer_reading=0):
self.make = make
self.model = model
self.year = year
self.odometer_reading = odometer_readming

2、关于self,虽然知道他应该是一个传递参数的功能,但是作为初学者,其实还不是完全理解,希望得到解惑!谢谢

  • 写回答

5条回答 默认 最新

  • 溪风沐雪 2022-04-29 20:59
    关注

    不放到init函数参数里的唯一原因就是这个变量初始值就是0,不允许改变,就以这个Car为例,里程数在一辆车刚被造出来的时候,必然是0,要不然你新造的车就有了1万公里的里程数,那总不能是在工厂里跑出来的,如果你非要放到init函数中,那这个类就应该描述的是新车和二手车的通用类,因为只有二手车初始的里程数才会不为0,这两种写法都没错,区别就在于初始值必须为0是否有实际意义

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 5月11日
  • 已采纳回答 5月3日
  • 修改了问题 4月29日
  • 创建了问题 4月29日

悬赏问题

  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错