零基础学习Python 作业 第37章--未完成???

0.  以下代码体现了面向对象编程什么特征?

多态特征,不同实例调用同一方法返回不同结果!

 

1.当程序员不想把 同一段代码写几次,他们发明了场景解决这种情况,当程序员有一个类,邮箱定义一个非常类似的新类,他们会怎么做/

答:  定义类

     定义之类,类的继承!

2.self参数的作用是什么?

绑定方法,self 是实例对象的唯一标识!

3.如果我们不希望对象的属性 或 方法被外部直接引用,我们可以怎么做?

答: 我们可以在属性或方法名字前边加上双下划线,这样子从外部是无法直接访问到,会显示AttributeError错误

 

4.类在实例化后那个方法会被自动调用?

__init__方法会在类实例化时被自动调用,我们称之为魔法方法,你可以重写这个方法,为对象定制初始化方案!

 

5.请解释下边代码错误的原因:

class  MyClass:
name = 'FishC'
def myFun(self):
print("hello fishc!")

MyClass.name
MyClass.myFun()
c = MyClass()
c.myFun()

输出返回:
hello fishc!

动手题
#0.按照以下要求定义一个游乐园门票的类,并计算2个成人 + 1个小孩的平日票价。
#平日票价100元
#周末票价为平日的120%
#儿童半票
class Tickets(object):
adult = 100 #成人平日票价
beibi = 50 #儿童平日票价
adult1 = 120 #成人周末票价
beibi1 = 50 #儿童周末票价
def adultPingri(self):
Ts = (int(self.adult*2) + int(self.beibi))
print('并计算2个成人 + 1个小孩的平日票价:%d'%(Ts))
T = Tickets()
T.adultPingri()
class Tickets(object):
def __init__(self,weekend = False,child = False):
self.exp = 100
if weekend:
self.inc = 1.2
else:
self.inc = 1
if child:
self.discount = 0.5
else:
self.discount = 1
def calcPrice(self,num):
return self.exp * self.inc * self.discount * num
adult = Tickets()
child = Tickets(child =True)
print("2个成人 + 1个小孩的平日票价:%.2f"%(adult.calcPrice(2)+child.calcPrice(1)))

输出:
2个成人 + 1个小孩的平日票价:250.00


posted @ 2018-11-26 15:54  蘑菇慢慢  阅读(131)  评论(0)    收藏  举报