【就业班1期】python脚本编写实战2

课堂 ppt

https://pdf.ceshiren.com/jy1/python脚本编写实战2

PPT地址

实战内容

理解面向对象

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法
  • 对象:类的实例
  • 实例化:创建一个类的实例,类的具体对象
  • 方法:类中定义的函数
  • 类变量:类变量是所有对象共有的,类变量变化之后,其他对象得到的就是变化后的值。类变量定义在类中且在函数体之外
  • 局部变量:定义在方法中的变量,作用域为当前的方法
  • 实例变量:对象私有的,某一个对象改变它的值不会影响其他对象。在方法内声明,需要加 self. 标识区分
  • 私有属性,不能通过对象直接访问,在类的方法中可以访问
  • 私有方法,不能通过对象直接访问,在类的方法中可以访问

  • 通过 class 关键字定义
  • 构造函数
    # 构造函数,在类实例化的时候先执行
    def __init__(self, door, floor):

self 含义

  • self 代表实例本身,可以把实例对象传入到方法中
  • self 的方法需要用实例对象去调用
  • self 是约定俗成的名称,可以修改,但是不建议改

面向对象实战

骑车的例子

  • 被继承者:父类,又叫基类、超类
  • 继承者:子类
    • 子类可以继承父类的公共属性和方法
    • 父类的私有属性、方法不会被子类继承,也不能被访问
    • 可以通过调用继承的父类的共有方法,间接的访问父类的私有方法、属性
    • 如果子类拥有和父类一样呢名字的方法,父类的方法将被覆盖(重写)

课后作业

  1. 写一个面向对象的例子:
  • 比如创建一个类(Animal)【动物类】,类里有属性(名称,颜色,年龄,性别),类方法(会叫,会跑)
  • 创建子类【猫】,继承【动物类】
  • 重写父类的__init__方法,继承父类的属性
  • 添加一个新的属性,毛发=短毛
  • 添加一个新的方法, 会捉老鼠,
  • 重写父类的‘【会叫】的方法,改成【喵喵叫】
  • 创建子类【狗】,继承【动物类】
  • 复写父类的__init__方法,继承父类的属性
  • 添加一个新的属性,毛发=长毛
  • 添加一个新的方法, 会看家
  • 复写父类的【会叫】的方法,改成【汪汪叫】
  1. 在入口函数中创建类的实例
  • 创建一个猫猫实例
  • 调用捉老鼠的方法
  • 打印【猫猫的姓名,颜色,年龄,性别,毛发,捉到了老鼠】
  • 创建一个狗狗实例
  • 调用【会看家】的方法
  • 打印【狗狗的姓名,颜色,年龄,性别,毛发】

课堂代码

课后调查表

1 Like

git@gitee.com:biubiu-wu/biubiu1.git

https://gitee.com/wuxiheng/wu-xiheng/tree/master/

1 Like

https://github.com/duoha1013/hogwarts_test/blob/main/task/class_animal.py

作业名称: python脚本编写实战2

https://github.com/zhanghao-github-python/pythonhomework.git

https://gitee.com/MX-IV/hogwarts/blob/master/Animals.py

【作业提交】python实战:
class Animal:

def __init__(self, name, color, age, sex):
    self.name = name
    self.color = color
    self.age = age
    self.sex = sex

def cry(self):
    print(f"{self.name}会叫")

def run(self):
    print(f"{self.name}会跑")

class Cat(Animal):
def init(self, name, color, age, sex):
self.hair = “短毛”
super().init(name, color, age, sex)

def cry(self):
    print(f"{self.name}是一只小猫,{self.age}岁了,颜色是:{self.color}, 性别是:{self.sex},毛发是{self.hair},会喵喵叫~喵喵喵~")

def catch(self):
    print(f"{self.name}是一只小猫,{self.age}岁了,颜色是:{self.color}, 性别是:{self.sex},毛发是{self.hair},会捉老鼠,捉到了一只老鼠")

class Dog(Animal):
def init(self, name, color, age, sex):
self.hair = “长毛”
super().init(name, color, age, sex)

def cry(self):
    print(f"{self.name}是一只小狗,{self.age}岁了,颜色是:{self.color}, 性别是:{self.sex},毛发是{self.hair},会汪汪叫~汪汪汪~")

def watch(self):
    print(f"{self.name}是一只小狗,{self.age}岁了,颜色是:{self.color}, 性别是:{self.sex},毛发是{self.hair},会看家")

if name == “main”:
catKitty = Cat(“Kitty”, “white”, 2, “female”)
dogJerry = Dog(“Jerry”, “black”, 3, “male”)
catKitty.catch()
dogJerry.watch()