task7(1) python类与对象

练习题:

1、以下类定义中哪些是类属性,哪些是实例属性?

class C:
    num = 0
    def __init__(self):
        self.x = 4
        self.y = 5
        C.count = 6

其中 C.count = 6 为类的属性,
self.x=4 以及 self.y=5 为实例属性

2、怎么定义私有⽅法

私有方法指的是外部对象不能直接访问的方法,若直接访问,系统会报错。而定义私有方法的方式只需要在方法名前加上__即可。

class Site:
x=Site()
x.__foo()
# AttributeError: 'Site' object has no attribute '__foo'

3、尝试执行以下代码,并解释错误原因:

class C:
    def myFun():
        print('Hello!')
    c = C()
    c.myFun()
    

首先由于关于c最后两行代码没有缩进,使得python的判断c=C( )为定义类C的一部分,其次没有在定义方法时注明self(方法的自身,但不需参数引入),导致错误。

改正后的代码如下:

 class C:
    def myFun(self):
        print('Hello!')
c = C()
c.myFun()
#Hello!

4、按照以下要求定义一个游乐园门票的类,并尝试计算2个成人+1个小孩平日票价。

要求:

平日票价100元
周末票价为平日的120%
儿童票半价
class Ticket():
# your code here

class Ticket():
   
    def  __init__(self,day,m,n):
        p=100 * m + 50 * n
        if day>=1 and day<=5:
            self.day="非周末"
            self.adultnum=m
            self.kidnum=n
            self.price= p
        else:
            self.day="周末"
            self.price=1.2 * p
            
    def pri(self):
        print(self.day)
        print("总票价为 %d" % self.price)

bill=Ticket(2,2,1)
bill.pri( )
#非周末
#总票价为 250

参考:https://github.com/datawhalechina/team-learning-program/blob/master/PythonLanguage/13.%20%E7%B1%BB%E4%B8%8E%E5%AF%B9%E8%B1%A1.md

你可能感兴趣的:(python)