python学习2

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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值