设为首页收藏本站

Crossin的编程教室

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

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

[复制链接]

2

主题

0

好友

40

积分

新手上路

Rank: 1

51#
发表于 2017-11-15 14:27:06 |只看该作者
class Vehicle(object):
    def __init__(self,speed):
        self.speed = speed

class Car(Vehicle):
    def __init__(self, speed, distance, oil_spent):
        Vehicle.__init__ = speed
        self.distance = distance
        self.oil_spent = oil_spent
    def cost(self):
        f = self.distance * self.oil_spent
        print('we need %s fuels' %f)

class Bike(Vehicle):
    pass

bike = Bike(40)
car = Car(80,100,0.012)
print(car.cost)

我是自己写的,为什么我只能查到一大串内存值,像这样:
<bound method Car.cost of <__main__.Car object at 0x0173ABD0>>
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

52#
发表于 2017-11-15 19:32:06 |只看该作者
Selvaria 发表于 2017-11-15 14:27
class Vehicle(object):
    def __init__(self,speed):
        self.speed = speed

cost是函数,后面的括号呢
看下函数那几课
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

2

主题

0

好友

40

积分

新手上路

Rank: 1

53#
发表于 2017-11-16 08:41:39 |只看该作者
crossin先生 发表于 2017-11-15 19:32
cost是函数,后面的括号呢
看下函数那几课

嗯,谢谢。后来自己也发现了。但是执行后会多一行结果None,这是为啥
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

54#
发表于 2017-11-16 09:04:16 |只看该作者
Selvaria 发表于 2017-11-16 08:41
嗯,谢谢。后来自己也发现了。但是执行后会多一行结果None,这是为啥

你没有 return
看下函数的返回值那课
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

2

主题

0

好友

40

积分

新手上路

Rank: 1

55#
发表于 2017-11-16 17:07:40 |只看该作者
crossin先生 发表于 2017-11-16 09:04
你没有 return
看下函数的返回值那课

谢谢,但以前一直没注意到这个问题,比如:
def isequal(x,y):
    if x == y:
        print('Equal!')
    else:
        print('Not eaqual')
我没有写return,执行后也并未出现None值
>>> isequal(1,2)
Not eaqual
>>> isequal(2,2)
Equal!
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

56#
发表于 2017-11-17 10:04:30 |只看该作者
Selvaria 发表于 2017-11-16 17:07
谢谢,但以前一直没注意到这个问题,比如:
def isequal(x,y):
    if x == y:

因为你没有另外 print 函数的值
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

3

主题

0

好友

35

积分

新手上路

Rank: 1

57#
发表于 2018-1-22 04:31:29 |只看该作者
非常感谢crossin老师! 很多原本自己不懂的问题原来大家也有, 谢谢老师耐心解答~!

P.S. 希望大家以后问问题可以有礼貌一点!! 很多人都没说谢谢, 有些话语还过于直接. crossin老师在很无私地用自己的时间给我们免费解答.
回复

使用道具 举报

0

主题

0

好友

20

积分

新手上路

Rank: 1

58#
发表于 2018-3-2 16:32:47 |只看该作者
本帖最后由 Frank.Lin 于 2018-3-2 16:34 编辑

py3里面如下代码,求老师解惑:
  1. class Vehicle:
  2.     def __init__(self,speed):
  3.         self.speed=speed

  4.     def drive(self,distance):
  5.         print('nees %f hour(s)'%(distance/self.speed)
  6.    class Bike(Vehicle):
  7.               pass
  8.               
  9.     class Car(Vehicle):
  10.               def __init__(self,speed,fuel):
  11.               vehicle._init_(self,speed)
  12.               self.fuel=fuel

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


  16. b=Bike(15.0)
  17. c=Car(80.0,0.012)
  18. b.drive(100.0)
  19. c.drive(100.0)
  20.                
复制代码
系统报错,invalid syntax,再class Bike(vehicle)那里。请教下老师及各位同学,到底是什么原因?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

59#
发表于 2018-3-3 20:31:45 |只看该作者
Frank.Lin 发表于 2018-3-2 16:32
py3里面如下代码,求老师解惑:系统报错,invalid syntax,再class Bike(vehicle)那里。请教下老师及各位 ...

缩进不对。
class Bike 不是 Vehicle 内部
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

60#
发表于 2018-4-6 20:11:53 |只看该作者
class A:
    def __init__(self,a,b):
        self.a=int(a)
        self.b=int(b)
    def add(self):
        print self.a+self.b


class B(A):
    A.__init__(self,a,b)
    def sub(self):
        print self.a-self.b
count= B('4',5)
count.add()

继承那部分我自己写了个例子想试试,意图是 B继承A的add方法,同时也新建一个方法,然后在B类里调A的add方法, 参数a,b是一样的从A里继承过来  可是我这样会报错Traceback (most recent call last):
  File "C:/Python27/5.py", line 9, in <module>
    class B(A):
  File "C:/Python27/5.py", line 10, in B
    A.__init__(self,a,b)
NameError: name 'self' is not defined
>>>

求解什么问题?
回复

使用道具 举报

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

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

GMT+8, 2024-11-22 07:58 , Processed in 0.017273 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部