请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生

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

[复制链接]

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2018-10-21 13:20:08 |显示全部楼层
amengguyi 发表于 2018-10-20 22:32
self.speed = speed 是什么意思?去初始化怎么理解呢

speed是函数传进来的参数
self.speed 是成员变量

这两个不相干,只是正好名字一样,也可以取不同的名字
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

6

主题

0

好友

166

积分

注册会员

Rank: 2

发表于 2018-11-3 13:28:35 |显示全部楼层
class Vehicle:
    def __init__(self,speed):
        self.speed=speed

    def drive(self,distance):
        print'need %f hour(s)'%(distance/slelf.speed)
class Bike(Vehicle):
    pass

class Car(Vehicle):
    def __int__(self,speed,fuel):
        Vehicle.__init__(self,speed)
        self.fuel=fuel

    def drive(self,distance):
        Vehicle.drive(self,distance)
        print'need %f fuels' % (distance*self.fuel)

b=Bike(15.0)
c=Car(80.0,0.012)
b.drive(100.0)
c.drive(100.0)
为什么会报错
Traceback (most recent call last):
  File "C:/Users/DONG/Desktop/PY/code/47(4).py", line 20, in <module>
    c=Car(80.0,0.012)
TypeError: __init__() takes exactly 2 arguments (3 given)
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2018-11-4 12:36:42 |显示全部楼层
东东哥 发表于 2018-11-3 13:28
class Vehicle:
    def __init__(self,speed):
        self.speed=speed

__init__ ,不是 __int__
你拼错了,导致你定义的初始化没用起作用
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

30

积分

新手上路

Rank: 1

发表于 2019-4-21 16:03:35 |显示全部楼层
感觉面向对象好难,我其实前后看了四节课得有十遍还是我太笨了
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2019-4-24 22:41:39 |显示全部楼层
万里江山 发表于 2020-6-10 23:03
感觉面向对象好难,我其实前后看了四节课得有十遍还是我太笨了

可以暂时先不管,因为缺少场景去理解面向对象是比较难的。当你之后遇到适合场景才回头看,可能会有新感悟
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

发表于 2020-7-27 15:58:05 |显示全部楼层
是创建类的时候调用吗?是创建了这个类的实例时调用吧!
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2020-7-27 22:29:51 |显示全部楼层
杀杀杀 发表于 2020-7-27 15:58
是创建类的时候调用吗?是创建了这个类的实例时调用吧!

你说得对,感谢指正!
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-3-29 15:46 , Processed in 0.024588 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部