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()