python学习2
1.类与对象
类:类是一个模板,它描述一类对象的行为和状态。
对象:对象:对象是类的一个实例(,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
#建立一个people类
class people:
height = 100;
def __init__(self,name,age): # 实例化方法
self.name = name
self.age = age
def height(self):
print("他的体重是:",people.height)
# 新建学生类
class Student:
def __init__(self, stuno, stuage):
self.stuno = stuno
self.stuage = stuage
def study(self):
print("学号%s正在学习!" %(self.stuno))
zz = Student(1, 20)
zz.study()
# 新建一个超市类,属性:名字,地址。方法:购物
# 实例化两个超市的对象,并打印属性,调用方法
class Shop:
def __init__(self,name,address):
self.name = name
self.address = address
self.goods = []
self.price = []
def shopping(self):
print("一起去%s血拼吧" %(self.name))
class Good:
def __init__(self,name,price):
self.name = name
self.price = price
shop1 = Shop("woerma","road1")
good1 = Good("cup",2)
good2 = Good("bed",3)
shop1.goods.append(good1.name)
shop1.goods.append(good2.name)
shop1.price.append(good1.price)
shop1.price.append(good2.price)
print("商品有",shop1.goods)
print("价格是",shop1.price)
shop1.goods.insert(0,"cup")
shop2= Shop("jialefu","road2")
print("shop1.name:",shop1.name,"shop1.address:",shop1.address)
print("shop2.name:",shop2.name,"shop2.address:",shop2.address)
shop1.shopping()
shop2.shopping()
# 新建一个班级类(班级号,学生们students(list)),学生类学生(学号,姓名)
# 新建三个学生,放到班级中去
# 类写好要实例化对象
class Class:
def __init__(self,number):
self.number = number
self.students = []
class Student:
def __init__(self,sno,name):
self.sno = sno
self.name = name
c1 = Class(1)
s1 = Student(1,"张三")
s2 = Student(2,"李四")
s3 = Student(3,"王五")
c1.students.append(s1)
c1.students.append(s2)
c1.students.append(s3)
print(c1.students)
输出的是地址
# 新建一个班级类
class Student:
studentNumber = 0
def __init__(self, sno, name): # 学生类的初始化方法
self.sno = sno
self.name = name
Student.studentNumber = Student.studentNumber+1
def view(self):
print(self.sno, " ", self.name)
def showNumber(self):
print("已经创建了",Student.studentNumber,"个学生")
class Class:
def __init__(self, cno, students):
self.cno = cno
self.students = students
def addStudent(self, student):
self.students.append(student)
def viewStudents(self):
for i in self.students:
i.view()
stu1 = Student("001", "Alex")
stu2 = Student("002", "Bob")
stu3 = Student("003", "Cindy")
class1 = Class("001", [stu1, stu2, stu3])
# 调用class 的addStudent方法来增加学生的对象
stu4 = Student("004", "Dog")
class1.addStudent(stu4)
class1.viewStudents()
print(Student.studentNumber)
继承
1.python的类可以继承多个类,java和c#则只能继承一个类
2.python的类如果继承了多个类,那么其寻找方法的方式有两种,分别是:深度优先和广度优先
a.当类是经典类时,多继承情况下,会按照深度优先方式查找
b.当类时新式类时,多继承情况下,会按照广度优先方式查找
经典类和新式类,从字面上可以看出一个老一个新,新的必然包括了更多的功能,也是只有推荐的写法,从写法上的区分的话,如果当前类或父类继承了Object类,那么该类便是新式类,否则便是经典类。
class Animals:
def __init__(self,kind):
self.kind = kind
def eat(self):
print("动物也要吃饭")
class Dog(Animals):
def __init__(self,name):
self.name = name
def run(self):
print("狗要多奔跑")
animal1 = Dog("柯基")
animal1.eat()
animal1.kind = "狗"
print(animal1.kind)
子类重写父类
# 重载
# object 超类
# def ___str__(self):功能时打印对象时打印这个方法里返回的
class Student:
def __init__(self,name):
self.name = name
def __str__(self):
return "lalala"
stu1 = Student("张三")
stu2 = Student("李四")
stu3 = Student("王五")
students = [stu1, stu2, stu3]
print(students)
print(stu1)
一个超市的控制台
# 超市类: 功能: 对商品进行展示 2 对商品进行增加减少3对商品进行删除
# 商品类 属性方法自己定义
# 控制台 循环选择的功能
class Shop:
def __init__(self):
self.goods = []
def addGoods(self, good):
self.goods.append(good)
def removeGoods(self, index):
self.goods.remove(self.goods[index])
# 展示所有的学生的信息
def showGoods(self):
index = 0
for i in self.goods:
print("下标", index, end=" | ")
i.view()
index = index + 1
class Goods:
def __init__(self,name,price):
self.name = name
self.price = price
def view(self):
print("商品:",self.name, "| 价钱:", self.price)
shop1 = Shop()
good1 = Goods("apple",5)
good2 = Goods("banana",7)
good3 = Goods("orange",9)
good4 = Goods("bed",25)
good5 = Goods("cup",3)
good6 = Goods("football",30)
good7 = Goods("basketball",35)
shop1.addGoods(good1)
shop1.addGoods(good2)
shop1.addGoods(good3)
shop1.addGoods(good4)
shop1.addGoods(good5)
shop1.addGoods(good6)
shop1.addGoods(good7)
def add():
name = input("请输入你要添加的商品名称:")
price = input("请输入你要添加的商品价钱:")
stu = Goods(name, price)
shop1.addGoods(stu)
shop1.showGoods()
print("==============================")
def delete():
t = input("请输入你要删除的下商品下标号:")
t = int(t)
shop1.removeGoods(t)
shop1.showGoods()
print("==============================")
while True:
print("----请选择您要执行的操作-----")
commond = input("-0:展示|1;删除|2:增加|3:退出-")
commond = int(commond)
if commond == 0:
shop1.showGoods()
if commond == 1:
delete()
if commond == 2:
add()
if commond == 3:
break