037动动手0
零基础入门学习python中037动动手0 算票价:按照以下要求定义一个游乐园门票的类,并尝试计算2个成人+1个小孩平日票价——平日票价100元,周末票价为平日的120%,儿童半价源码:
class Ticket():
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 = Ticket()
>>> child = Ticket(child=True)
>>> print("2个成人 + 1个小孩平日票价为:%.2f" % (adult.calcPrice(2) + child.calcPrice(1)))
2个成人 + 1个小孩平日票价为:250.00
提问: if weekend: 和 if child: 都是指 if False: 吗?建立实例对象时,adult=Ticket()里都是默认参数False吧。 这些怎么理解呢 本帖最后由 jackz007 于 2019-11-19 15:57 编辑
child = False 意思是:不是小孩;if child 意思是,如果是小孩(child == True)
weekend = False 的意思是:不是周末 ;if weekend 的意思是,如果是周末(weekend == True)
adult = Ticket() 按缺省参数(成人、平日)创建对象 adult;
child = Ticket(child=True) 按参数child = True,weekend = False 参数创建对象 child jackz007 发表于 2019-11-19 15:54
child = False 意思是:不是小孩;if child 意思是,如果是小孩(child == True)
weekend = False 的意思 ...
但缺省参数里,False赋予给了weekend.那么if weekend 不就应该是if False吗?(child也是)不然写缺省参数weekend=False和child=False的意义是什么呢? John车俊林 发表于 2019-11-19 16:41
但缺省参数里,False赋予给了weekend.那么if weekend 不就应该是if False吗?(child也是)不然写缺省参数 ...
问到关键上了,缺省参数的意思是,创建对象的时候,这些参数是可以不写的,如果不写,那么,就按定义时给的缺省参数进行设置,如果要写,一定要按 child = ,和 weekend = 这种形式来写,那么,创建对象的时候就会用给定的参数覆盖缺省参数。 John车俊林 发表于 2019-11-19 16:41
但缺省参数里,False赋予给了weekend.那么if weekend 不就应该是if False吗?(child也是)不然写缺省参数 ...
如果没有指定 weekend 和 child,它们将自动赋值为 False;但如果指定了 weekend 或 child,它们将变成指定的值。 jackz007 发表于 2019-11-19 17:15
问到关键上了,缺省参数的意思是,创建对象的时候,这些参数是可以不写的,如果不写,那么,就按 ...
嗯嗯那这weekend/child只是参数的话,为什么if weekend/child:就能认为是if True: 呢?我知道if后跟的条件为真,但weekend/child只是一个参数,不是布尔类型吧 John车俊林 发表于 2019-11-19 19:56
嗯嗯那这weekend/child只是参数的话,为什么if weekend/child:就能认为是if True: 呢?我知道if后跟 ...
参数只是你在定义对象的时候,输入对象的变量,adult = Ticket(child = False),那么,在 __init__() 中,child 的值就是 False,这有那么难理解吗? zltzlt 发表于 2019-11-19 19:41
如果没有指定 weekend 和 child,它们将自动赋值为 False;但如果指定了 weekend 或 child,它们将变成指 ...
噢噢,我就想明确这个,谢谢啦
页:
[1]