小蜂队 发表于 2022-4-15 20:52:48

python 课后作业037将求解读代码块

本帖最后由 小蜂队 于 2022-4-15 21:02 编辑

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

疑问如下:
1.weekend=True,child=True 是否可以?
2.在我的理解是使用 def __init__()方法的域下是属性,是变量赋值操作;而def calcPrice(self,num):的域下是方法对吗?
3.请解释 adult = Ticket() and child = Ticket(child=True) 起到的作用

璎珞君 发表于 2022-4-15 20:52:49

本帖最后由 璎珞君 于 2022-4-16 08:58 编辑

wp231957 发表于 2022-4-15 21:03:19

weekend=True,child=True 是否可以?
如果你不给他传值,则默认为true会导致一些问题,具体可以看下面的代码

xxxxss 发表于 2022-4-16 09:16:23

使用此代码:
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)))
页: [1]
查看完整版本: python 课后作业037将求解读代码块