当前位置:首页>python>Python-16进阶语法-面向对象01(体系文章)

Python-16进阶语法-面向对象01(体系文章)

  • 2026-09-02 16:04:06
Python-16进阶语法-面向对象01(体系文章)
      首先恭喜大家迈过了第一阶段基础语法的学习👏🎇🍺,后面体系文章篇幅我们玩点更进阶的内容,毕竟那点知识储备离AI开发工程师还是有很大距离的,咱们并肩作战一步步学习        

一、什么是“面向对象”?

假设你要描述一个人。

传统的方式(面向过程)是这样:名字、年龄、身高、体重……一堆数据扔在那里,谁用谁拿。

而面向对象的方式是:这个人本身就是一个“对象”,他自带名字、年龄,还会走路、说话、吃饭。

看出来区别了吗?

面向过程关注“怎么做”,面向对象关注“谁来做”。

在Python里,万物皆对象。列表是对象,字符串是对象,函数也是对象。你每天都在用,只是没意识到。

二、类和对象:图纸和房子的关系

要理解面向对象,先搞懂两个词:类 和 对象。

  • 类:好比一张设计图纸。它描述了房子长什么样,有几个房间,门朝哪开。

  • 对象:根据图纸盖出来的真实房子。图纸可以盖100栋房子,每栋房子都是独立的。

    在Python中,采用类(class)来生产对象,用类来规定对象的属性和方法!也就是说,在Python中,要想得到对象,必须先有类!

三、代码示例

""" 定义类的语法(三选一即可)第一种 class 类名(object):     # 属性     # 方法第二种 class 类名():     # 属性     # 方法第三种 class 类名:     # 属性     # 方法"""class Cat(object):  # object可以省略,甚至(object)都可以省略    # 属性    name = 'tom' # 这个变量是类变量,所有对象都有这个属性并且值都是tom    # 方法    def eat(self):        print('猫吃鱼...')    def sleep(self):        print('猫白天睡觉...')# 给类进行实例化---> 创建该类的对象.# 对象名 = 类名()c1 = Cat()c2 = Cat()# 使用(调用)对象# 对象名.属性print(c1.name) # 第一只猫叫tomprint(c2.name) # 第二只猫也叫tom# 对象名.方法()c1.eat()c2.eat()
# 这是一个“狗”的类(图纸)class Dog:   # __init__ 名字固定写法,当创建对象时候自动调用的魔术方法(以__开头的函数)    def __init__(self, name, age):        self.name = name  # 属性:名字        self.age = age    # 属性:年龄    def bark(self):       # 方法:能干什么        print(f"{self.name} 汪汪叫!")# 根据图纸造两只真实的狗(对象)dog1 = Dog("旺财", 3)dog2 = Dog("小黑", 5)dog1.bark()  # 旺财 汪汪叫!dog2.bark()  # 小黑 汪汪叫!

伙伴们,类只管定义“狗应该有名字、年龄,并且会叫”,至于具体是哪条狗,由对象说了算,上面代码涉及一个关键词self,这是类中的方法第一个参数,不写编辑器默认也会加上,代表的含义就是创建出的那个对象,上述代码就是dog1或dog2

四 、 对象动态添加属性

# 1、定义一个Person类class Person(object):    pass# 略过... 不让语法报错.临时撑起类的身体.# 2、实例化Person类,生成p1对象p1 = Person()# 3、为p1对象添加属性p1.name = '龙哥'p1.age = 38p1.address = '北京市海淀区'# 4.查看类的属性////???print(p1.name)# 龙哥print(p1.age)# 38print(p1.address)# 北京市海淀区# print(p1.id) # AttributeError: 'Person' object has no attribute 'id'

pass关键字-可以这样理解,暂时没有想好实现,一个占位符

总结

    本节需要理解类和对象的关系,在python中如何定义类、属性(可以创建时候在__init__魔术方法初始化也可以后期动态添加)、方法,龙哥敲个小黑板:重点是理解,不在于语法的记忆,写多了看多了自然就可以记住、并且现在时代都是AI编程

最新文章

随机文章