开个丸笑 发表于 2018-1-21 23:30:16

零基础入门python动动手第二题,

Turtle类里面__init__方法定义了self.power属性,但按照函数的概念self.power不是局部变量么,为什么Turtle类里面eat()方法可以调用self.power属性。另外第十六与第十七行new_x,new_y是不是应该用self.new_x,self.new_y。

BngThea 发表于 2018-1-21 23:30:17

开个丸笑 发表于 2018-1-22 13:40
能不能稍微说的详细一点哈,没听懂

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

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

BngThea 发表于 2018-1-22 07:32:06

你如果将power视为局部变量,那么这个局部的范围就是整个类
new_x只是一个真正的局部变量

开个丸笑 发表于 2018-1-22 13:40:12

BngThea 发表于 2018-1-22 07:32
你如果将power视为局部变量,那么这个局部的范围就是整个类
new_x只是一个真正的局部变量

能不能稍微说的详细一点哈,没听懂{:5_95:}

wanmz 发表于 2018-1-22 13:55:58

加了self.就是类的成员变量. 如self.power.没加self.如new_x就是局部变量.即只在move函数内有效
页: [1]
查看完整版本: 零基础入门python动动手第二题,