python面向对象编程思维(面向对象 python)

一、类和对象 1、万物皆对象 2、对象:用来描述客观事物的一个 实体 ,由一组 属性 和 方法 构成 3、属性:对象具有的各种特征,每个对象的每个属性都有特定值 4、方法:对象执行的操作 5...

一、类和对象

1、万物皆对象

2、对象:用来描述客观事物的一个 实体 ,由一组 属性 和 方法 构成

3、属性:对象具有的各种特征,每个对象的每个属性都有特定值

4、方法:对象执行的操作

5、类:对象的分类,分类就是认识对象的过程

私信小编01即可获取大量python学习资源

面向对象设计的规则

1、图书类: 属性:图书编号、书名、书的作者、上架日期、借出状态

功能(方法):借出和归还

2、银行卡类: 属性:卡号、银行卡名称、密码、姓名、余额

方法:登入、存款、取款

二、面向对象创建:定义某个类的对象具有的属性(变量)和方法(函数)

python面向对象编程思维(面向对象 python) 1

# 思路:
# 定义类 --> 人类
# 编写类的属性:姓名、年龄、id(身份证号)、手机号
# 编写类的方法:吃、喝、玩、睡、上班
class Person:
    # 编写属性(变量)
    name = "杨幂"
    age = 30
    gender = '女'

    # 我不想用指定属性,我想自己创建姓名
    def set_param(self%2c name):  # age、gender一样操作
        self.name = name
        print(f'姓名:{self.name}')  
    # 如属性很多,那就很麻烦,我们可以使用 def __init__去构造

    # 编写方法(函数)%2c无参
    def eat(self):
        print('eating')

    def drink(self):
        print('drinking')

    def play(self):
        print('playing')

    def sleep(self):
        print('sleeping')
    
    @classmethod
    def work(self):
        print('working')


# 对象的构造
YM = Person
# 调用方法
YM.sleep
YM.work

zs = Person
zs.set_param('张三')

# 类访问方法,需要添加一个装饰器@classmethod
Person.eat
# def __init__ 去构造属性
class Person:
    def __init__(self%2c name%2c age%2c gender):
        self.name = name
        self.age = age
        self.gender = gender

    # 编写方法(函数)%2c有参
    def eat(self%2c food):
        print(f'{self.name}在吃{food}')

    def drink(self%2c sthing):
        print(f'{self.name}在喝{sthing}')

    def play(self):
        print(f'{self.name}在玩')

    def sleep(self):
        print(f'{self.name}在睡觉')

    def work(self):
        print(f'{self.name}正在工作')

    def info(self):  # 输出信息
        print("该人的信息:"%2c self.name%2c self.age%2c self.gender)


# 构造对象输出信息
lihaoran = Person(name='李浩然'%2c age=32%2c gender='男')
# 调用方法
lihaoran.info
lihaoran.work
lihaoran.sleep

三、面向对象思想:封装、继承、多态

1、封装(属性私有化)

python面向对象编程思维(面向对象 python) 2

  • 私有属性可以被查看,但是不能被修改 —> get方法

python面向对象编程思维(面向对象 python) 3

  • 私有属性不被外界查看,但可以被外界修改 —> set方法】

python面向对象编程思维(面向对象 python) 4

"""封装(属性私有化)"""


class Student:
    def __init__(self%2c name%2c age%2c xh%2c id%2c address):
        self.name = name  # 默认公共属性(允许外界读取+修改)
        self.age = age  # 默认公共属性(允许外界读取+修改)
        self.xh = xh
        self.__id = id  # 私有属性(不允许外界读取+修改)
        self.__address = address  # 私有属性(不允许外界读取+修改)

    # 私有属性可以被查看,但是不能被修改  ---> get方法
    def getid(self):
        return self.__id

    def setaddress(self%2c newadress):
        self.__address = newadress

    def info(self):
        print('学生的基本信息:'%2c self.name%2c self.age%2c self.xh%2c self.__id%2c self.__address)


zhangsan = Student('Tom'%2c 18%2c '001'%2c '340104555555555555'%2c '南京')

# 私有属性(不允许外界读取+修改),如果想查看get方法
# print(zhangsan.id)  # 没有getid-->报错AttributeError: 'Student' object has no attribute 'id'
read_student_id = zhangsan.getid
print(f'查看张三id:{read_student_id}')

zhangsan.info
zhangsan.setaddress("合肥")
zhangsan.info

2、继承、多态

  • 继承在父类基础上构造出新的类,子类可以拥有继承**父类的属性和方法
  • 多态:指一个对象可以用子类的特点也可以父类的特征

python面向对象编程思维(面向对象 python) 5

python面向对象编程思维(面向对象 python) 6

class Animal:
    def __init__(self%2c name%2c color):
        self.name = name
        self.color = color

    def eat(self%2c food):
        print(f'{self.name}在吃{food}')

    def drink(self%2c sthing):
        print(f'{self.name}在喝{sthing}')

    def play(self):
        print(f'{self.name}在玩')

    def sleep(self):
        print(f'{self.name}在睡觉')


# 继承
class Dog(Animal):
    def __init__(self%2c name%2c color%2c age):
        super.__init__(name%2c color)  # super()调用父类对象
        self.age = age  # 属性有个性(构造属性重写)

    def kaijia(self):
        print(f"{self.name}看家")


hashiqi = Dog('哈士奇'%2c '黑白'%2c 6)
hashiqi.eat('骨头')

# 多态 方法上个性(构造方法重写) 独特个性
hashiqi.kaijia


class Cat(Animal):
    def __init__(self%2c name%2c color):
        super.__init__(name%2c color)  # super()调用父类对象


cat = Cat('波斯猫'%2c 'red')
cat.eat('鱼')
# cat.kaijia 因为猫不会看家,这是狗的独特个性
  • 发表于 2022-01-30 12:09
  • 阅读 ( 253 )
  • 分类:互联网

0 条评论

请先 登录 后评论
李易工作室
李易工作室

664 篇文章

你可能感兴趣的文章