一文让你掌握Python面向对象的编程思维

一、类和对象

1、万物皆对象

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

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

    # 编写方法(函数),无参
    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, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender

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

    def drink(self, 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("该人的信息:", self.name, self.age, self.gender)


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

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

1、封装(属性私有化)

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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


class Student:
    def __init__(self, name, age, xh, id, 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, newadress):
        self.__address = newadress

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


zhangsan = Student('Tom', 18, '001', '340104555555555555', '南京')

# 私有属性(不允许外界读取+修改),如果想查看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、继承、多态

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

在这里插入图片描述
在这里插入图片描述

class Animal:
    def __init__(self, name, color):
        self.name = name
        self.color = color

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

    def drink(self, 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, name, color, age):
        super().__init__(name, color)  # super()调用父类对象
        self.age = age  # 属性有个性(构造属性重写)

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


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

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


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


cat = Cat('波斯猫', 'red')
cat.eat('鱼')
# cat.kaijia() 因为猫不会看家,这是狗的独特个性

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Python资料、技术、课程、解答、咨询也可以直接点击下面名片,添加官方客服斯琪

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将数据和操作封装在对象中,通过对象之间的交互实现程序的设计和开发。下面是一些关键概念,帮助你更好地理解Python面向对象编程。 1. 类(Class):类是对象的蓝图或模板,描述了对象的属性和行为。它定义了对象的特征和方法。例如,我们可以定义一个名为"Car"的类来表示汽车,其中包含属性(如颜色、型号)和方法(如加速、刹车)。 2. 对象(Object):对象是类的实例,是具体的实体。通过实例化类,我们可以创建一个对象。例如,我们可以创建一个名为"my_car"的对象,它是基于"Car"类的实例。 3. 属性(Attribute):属性是对象的特征,用于描述对象的状态。每个对象都可以具有一组属性。例如,"Car"类的属性可以包括颜色、型号等。 4. 方法(Method):方法是对象的行为,用于定义对象的操作。每个对象都可以具有一组方法。例如,"Car"类的方法可以包括加速、刹车等。 5. 继承(Inheritance):继承是一种机制,允许我们创建一个新类(称为子类),从现有类(称为父类)继承属性和方法。子类可以扩展或修改父类的功能。继承可以实现代码重用和层次化设计。 6. 多态(Polymorphism):多态是一种特性,允许不同类的对象对同一方法做出不同的响应。多态提高了代码的灵活性和可扩展性。 7. 封装(Encapsulation):封装是一种将数据和操作封装在对象中的机制,隐藏了对象的内部实现细节,只暴露必要的接口给外部使用。这样可以保护数据的安全性,提供了更好的模块化和代码复用性。 通过理解这些概念,你可以更好地掌握Python面向对象编程。在实践中,你可以使用类来创建对象,操作对象的属性和调用对象的方法,通过继承和多态实现代码的灵活性和可扩展性,通过封装保护数据的安全性和提高代码的可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值