私有变量一定要定义在init中吗,为什么单独定义会报错

私有变量一定要定义在init中吗,为什么单独定义会报错

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学,你好。

如下是针对“在get_speed方法中使用set_speed方里的new_speed,为什么没有调用也可以正常使用”问题的解释。http://img1.sycdn.imooc.com//climg/5da1a618098d5c1213290543.jpg如果我的回答解决了您的疑惑,请采纳!祝~学习愉快~

慕之熠_灿烈 2019-10-12 15:29:00

同学,你好。

私有变量不是一定要定义在init中,可在其他实例方法中定义,如下图:

http://img1.sycdn.imooc.com//climg/5da17fb6097cf3ed10030796.jpg代码中出错的原因如下:http://img1.sycdn.imooc.com//climg/5da18024092a48af06960357.jpg

你可在程序执行print( )之前调用所定义的实例方法Stu_num( ),并对私有变量进行正确赋值即可!

如果我的回答解决了您的疑惑,请采纳!祝~学习愉快~

  • 提问者 呆呆打小怪兽 #1
    还是有一点不大懂,在同一个类不同的def里也需要调用吗,还是只有私有变量需要调用
    2019-10-12 16:46:52
  • 慕之熠_灿烈 回复 提问者 呆呆打小怪兽 #2
    若没有在__init__( )方法中定义私有变量,在本类的其他方法中调用时候,是需要提前调用定义私有变量的方法。 若在__init__( )方法中有定义私有变量,则可直接访问。 除了私有变量 在本类中的一个方法中访问另外的方法时,也需要调用。
    2019-10-12 17:25:07
  • 提问者 呆呆打小怪兽 回复 慕之熠_灿烈 #3
    class Vehicle(object): # 自定义实例的初始化方法 def __init__(self, speed, size=()): self.speed = int(speed) self.size = size # 自定义实例方法set_speed,设置对应的速度值 def set_speed(self, new_speed): self.new_speed = new_speed # 自定义实例方法get_speed,打印当前的速度值 def get_speed(self): print('我的时速为:{}km/h'.format(self.new_speed)) # 自定义实例方法speed_up,实现对实例的加速 def speed_up(self): self.speed_up = self.new_speed + 10 print('我的速度由{}km/h提升到了{}km/h'.format(self.new_speed,self.speed_up)) 在get_speed方法中使用set_speed方里的new_speed,为什么没有调用也可以正常使用,麻烦老师了
    2019-10-12 17:35:59
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师