Python课程笔记(三)

1、python定义类、创建对象

class Myclass:                 # 定义Myclass类
    def sum(self,x,y):
        self.x = x
        self.y = y
        return self.x+self.y

obj = Myclass()       # 创建obj对象,与Java不一样的是不需要new
s = obj.sum(3,5)
print('s=',s)

该程序定义类Myclass,并创建对象,通过对象调用类的方法。

创建对象格式:对象名 = 类名()

调用成员方法:对象名.方法名(self) (self的使用方法类似java中的this)

2、私有成员

class testPrivate:
    def __init__(self, x, y):
        self.__x = x
        self.__y = y

    def add(self):
        self.__s = self.__x + self.__y
        return self.__s

    def printData(self):
        print(self.__s)


t = testPrivate(3, 5)
s = t.add()
t.printData()
print("s=", s)

私有成员只能在类的内部调用,由“_ _”做前缀,则为私有成员。

3、构造方法

class Person:
    def __init__(self, Name, Age):
        self.name = Name
        self.age = Age
    def main(self):
        print("输入的名字是", self.name)
        print("输入的年龄是", self.age)


name = input("请输入你的名字:")
age = input("请输入你的年龄:")
p = Person(name, age)
p.main()

类的构造方法:_ _ init _ _(),构造方法属于对象,每个对象都有自己的构造方法。

4、析构方法

析构方法用于释放对象所占用的资源,在python系统销毁对象之前自动执行。可以类比Java中的GC机制

class Mood:
    def __init__(self, x):
        self.x = x
        print("产生对象:", x)

    def __del__(self):
        print("销毁对象:", self.x)


f1 = Mood(1)
f2 = Mood(2)
del f1
del f2

5、类的继承

单继承:class 子类名(父类名):

​ 子类的类体语句

多继承:class 子类名(父类名1,父类名2,...父类名n):

​ 子类的类体语句

Python在多继承时,如果这些父类中有相同的方法名,而在子类中使用时没有使用指定父类名,系统将会从左往右按顺序搜索。

from ForthClass.Person import Person


class Sunny(Person):
    def __init__(self, name, age, score):
        super(Sunny, self).__init__(name, age)
        self.score = score

    def prn(self):
        Person.main(self)
        print("成绩:", self.score)


name = input("请输入姓名:")
age = input("请输入年龄:")
score = input("请输入分数:")
s = Sunny(name, age, score)  # 实例化子类对象
s.prn()     # 调用子类方法

6、作业

设计一个商品类,有商品编号、品名、价格、数量,应用该类,统计商品的总金额。

class Goods:
    def __init__(self, Num, Name , Price, Count):
        self.num = Num
        self.name = Name
        self.price = Price
        self.count = Count

    def TotalPrice(self):
        totalPrice = self.count*self.price
        print("商品的总金额是:", totalPrice)


num = input("请输入商品编号:")
name = input("请输入商品名称:")
price = eval(input("请输入商品的价钱:"))
count = eval(input("请输入商品的数量:"))
g = Goods(num, name, price, count)
g.TotalPrice()
posted @ 2020-03-11 16:58  我在吃大西瓜呢  阅读(498)  评论(0编辑  收藏  举报