设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Python 第49课】 面向对象(3)

[复制链接]

0

主题

0

好友

40

积分

新手上路

Rank: 1

楼主
发表于 2016-7-14 17:02:15 |显示全部楼层
crossin先生 发表于 2013-12-2 19:06
speed是成员变量,这个类的每个实例都会有一个属于自己的speed
drive是成员函数,它要被这个类的实例所调 ...

先生:
这个Class Car里面:time = distance / speed也不会报错。
class Car:
        speed = 0
        def drive(self, distance):
                time = distance / speed
                print time
和你写的 time = distance / self.speed
效果一样吗?
回复

使用道具 举报

0

主题

0

好友

40

积分

新手上路

Rank: 1

沙发
发表于 2016-7-15 09:51:02 |显示全部楼层
crossin先生 发表于 2016-7-15 00:11
不一样。没报错是因为你没有调用 drive 方法吧

先生,调用了drive的哦
>>> class Car:
    speed = 0
    def drive(self, distance):
        time = distance / speed
        print time

        
>>> car = Car()
>>> car.speed = 60.0
>>> car.drive(100.0)
1.66666666667
回复

使用道具 举报

0

主题

0

好友

40

积分

新手上路

Rank: 1

板凳
发表于 2016-7-15 10:11:12 |显示全部楼层
Joshtu 发表于 2016-7-15 09:51
先生,调用了drive的哦
>>> class Car:
    speed = 0

先生我明白了,加self.speed和不加self的区别了!
如果class里面不加self.speed,直接用speed;每次调用的结果都是一样的:
上梨子:
>>> car1 = Car()
>>> car1.speed = 60.0
>>> car1.drive(100.0)
1.66666666667
c
>>> car1.drive(200.0)
3.33333333333
>>> car2 = Car()
>>> car2.speed = 150.0
>>> car2.drive(100.0)
1.66666666667
>>> car2.drive(200.0)
3.33333333333
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-3 14:33 , Processed in 0.026142 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部