1.尝试执行以下代码,并解释错误原因:
class C:
def myFun():
print('Hello!')
c = C()
c.myFun()
Traceback (most recent call last):
File "C:\Users\noone\Desktop\111.py", line 1, in <module>
class C:
File "C:\Users\noone\Desktop\111.py", line 4, in C
c = C()
NameError: name 'C' is not defined
报错原因:myFun()少了个self,而且把c=C()和c.myFun()写进了类中,改为:
class C:
def myFun(self):
print('Hello!')
c = C()
c.myFun()
2.按照以下要求定义一个游乐园门票的类,并尝试计算2个成人+1个小孩平日票价。
要求:
平日票价100元
周末票价为平日的120%
儿童票半价
class Ticket():
def __init__(self, man, child, week):
if not isinstance(man, int) and not isinstance(child, int):
raise TypeError('type must be int')
if man < 0 and child < 0 and week not in ['weekday', 'weekend']:
raise ValueError('value wrong')
self._man_num = man
self._child_num = child
self._week = week
def get_price(self):
if self._week == 'weekday':
return 100 * self._man_num + 50 * self._child_num
else:
return 120 * self._man_num + 60 * self._child_num
ticket = Ticket(2, 1, 'weekday')
ticket.get_price()
250