鱼C论坛

 找回密码
 立即注册
查看: 2837|回复: 4

[已解决]零基础入门python动动手第二题,

[复制链接]
发表于 2018-1-21 23:30:16 | 显示全部楼层 |阅读模式
30鱼币
Turtle类里面__init__方法定义了self.power属性,但按照函数的概念self.power不是局部变量么,为什么Turtle类里面eat()方法可以调用self.power属性。另外第十六与第十七行new_x,new_y是不是应该用self.new_x,self.new_y。
最佳答案
2018-1-21 23:30:17
开个丸笑 发表于 2018-1-22 13:40
能不能稍微说的详细一点哈,没听懂

1 self.power这个变量的作用域是整个类,所以在类中的其他任何地方都可以直接调用

2 new_x, new_y 只是两个暂时的变量,仅在move函数中有效,因为后面用它们进行了判断和赋值,用完之后就被抛弃了
0001.png
002.png

最佳答案

查看完整内容

1 self.power这个变量的作用域是整个类,所以在类中的其他任何地方都可以直接调用 2 new_x, new_y 只是两个暂时的变量,仅在move函数中有效,因为后面用它们进行了判断和赋值,用完之后就被抛弃了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-21 23:30:17 | 显示全部楼层    本楼为最佳答案   
开个丸笑 发表于 2018-1-22 13:40
能不能稍微说的详细一点哈,没听懂

1 self.power这个变量的作用域是整个类,所以在类中的其他任何地方都可以直接调用

2 new_x, new_y 只是两个暂时的变量,仅在move函数中有效,因为后面用它们进行了判断和赋值,用完之后就被抛弃了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-22 07:32:06 From FishC Mobile | 显示全部楼层
你如果将power视为局部变量,那么这个局部的范围就是整个类
new_x只是一个真正的局部变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-22 13:40:12 | 显示全部楼层
BngThea 发表于 2018-1-22 07:32
你如果将power视为局部变量,那么这个局部的范围就是整个类
new_x只是一个真正的局部变量

能不能稍微说的详细一点哈,没听懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-22 13:55:58 | 显示全部楼层
加了self.就是类的成员变量. 如self.power.  没加self.如new_x就是局部变量.即只在move函数内有效
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 20:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表