设为首页收藏本站

Crossin的编程教室

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

【Python 第50课】 面向对象(4)

[复制链接]

0

主题

0

好友

24

积分

新手上路

Rank: 1

8#
发表于 2013-8-31 13:33:16 |只看该作者
另外def drive的函数中间,为什么一定要distance/self.speed,而不是直接distance/speed,speed不是已经定义过了吗
回复

使用道具 举报

0

主题

0

好友

24

积分

新手上路

Rank: 1

7#
发表于 2013-8-31 13:21:53 |只看该作者
为什么要用__init__,有什么好处,这个函数也可以比不用__init__,直接def drive(self,speed,distance)
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

6#
发表于 2013-8-29 17:14:18 |只看该作者
匠逍之岿 发表于 2013-8-29 17:08
还有__init__是什么?为什么要用这个名字?  初始化类是什么意思?不太懂...

当创建一个类的实例时,有很多工作要做,比如类中的一些变量要赋给初始值。__init__就是干这种事。它会在一个实例被创建的时候自动调用。前后两个双下划线是系统方法的命名方式,它是python命名的,不需要你手动去调用
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

88

积分

注册会员

Rank: 2

5#
发表于 2013-8-29 17:08:32 |只看该作者
还有__init__是什么?为什么要用这个名字?  初始化类是什么意思?不太懂...
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2013-8-29 16:59:04 |只看该作者
匠逍之岿 发表于 2013-8-29 16:40
最后一段代码中,b = Bike(15.0)  和 c = Car(80.0,0.012),类Bike和类Car都继承类Vehicle,但是Vehicle里 ...

Bike没有重写Vehicle的__init__函数,所以它会调用它基类的。Car重写了,所以会调用它自身的。假如Car里要调用Vehicle中的同名方法,要用Vehicle.__init__()
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

88

积分

注册会员

Rank: 2

板凳
发表于 2013-8-29 16:40:05 |只看该作者
最后一段代码中,b = Bike(15.0)  和 c = Car(80.0,0.012),类Bike和类Car都继承类Vehicle,但是Vehicle里有两个方法啊,怎么确定括号里的参数15.0 和 80.0   0.012 是哪个方法里的参数?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2013-8-12 23:15:33 |只看该作者
多说一句,__init__函数是左右各两个下划线。这是python系统定义的名称。其他还有很多系统定义的方法和属性也是用双下划线包围的。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-5-18 22:29 , Processed in 0.020373 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部