【Python面向对象】封装机制的实现:类,及其语法特性

Python 面向对象三大特性:封装、继承与多态的深度解析 在 Python 中,可使用abc模块定义抽象基类和抽象方法,来规范子类必须实现的接口,进一步强化多态的约束性。passprint(f"使用信用卡支付 {amount} 元")print(f"使用支付宝支付 {amount} 元")Payment作为抽象基类,定义了抽象方法pay,子类CreditCardPayment和AlipayPayment必须实现pay方法,确保了在支付功能接口上的统一,体现了多态的规范与灵活性。 阅读详情

类,也许是从计算机的角度去结构这个世界的唯一方式。本文是一篇入门级别的文章,是有关于Python类的基础语法特性。主要内容有:类的方法(即C/C++中的函数),类的属性(即成员变量)。

写在前面:
本文是一篇学习笔记、有一定的总结性的文章,可能只适合有相关基础的人作为复习和查漏补缺。也许不适合新手!

如果你是新手,它可能适合你!

如果你是新手,它可能适合你!

类的定义

以Student类为例,在Python中,定义类是通过class关键字:

class Student(object):
	pass

解释:

  • class后面紧接着是类名,即Student,
  • 类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,继承的概念我们后面再讲,
  • 通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。

类方法

类方法包括:普通方法、静态方法和类方法,三种方法在内存中都归属于类,区别在于调用方式不同。

三种类的方法

  1. 普通方法:由对象调用;至少一个self参数;执行普通方法时,自动将调用该方法的对象赋值给self;
  2. 类方法:由类调用; 至少一个cls参数;执行类方法时,自动将调用该方法的类复制给cls;
  3. 静态方法:由类调用;无默认参数;

三种类方法的调用:

class Foo:
    def __init__(self, name):
        self.name = name

    def ord_func(self):  # 定义普通方法,至少有一个self参数
        print('普通方法')

    @classmethod  # 定义类方法,至少有一个cls参数
    def class_func(cls):
        print('类方法')

    @staticmethod  # 定义静态方法 ,无默认参数
    def static_func():
        print('静态方法')

# 调用普通方法
f = Foo()
f.ord_func()

# 调用类方法
Foo.class_func()

# 调用静态方法
Foo.static_func()

三种方法的区别:

  • 相同点:对于所有的方法而言,均属于类(非对象)中,所以,在内存中也只保存一份。
  • 不同点:方法调用者不同、调用方法时自动传入的参数不同。

特殊的内置方法

  1. __init__ 构造函数,在生成对象时调用
  2. __del__析构函数,释放对象时使用
  3. __str__ 显示该类的实例的信息,类似于Java中Object类的toString方法
  4. …

为了不喧宾夺主,这里这是简单介绍一下内置方法,更加详细的内置方法,后文将更加详细地介绍!

init内置方法

__init__():

  • 类似于Java中的带参构造方法,特殊方法“init”前后分别有两个下划线!!!
  • 第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
  • self类似于Java中的this指针;
class Student(object): # 定义类
    def __init__(self, name, score): # 定义构造方法
		self.name = name
		self.score = score

del内置方法

__del__():
理解del内置方法:

  1. 与 init() 方法对应的是__del__() 方法,__init__() 方法用于初始化 Python 对象,
  2. 而__del__() 则用于销毁 Python 对象,
  3. 即在任何 Python 对象将要被系统回收之时,系统都会自动调用该对象的__del__() 方法。

当程序不再需要一个 Python 对象时,系统必须把该对象所占用的内存空间释放出来,这个过程被称为垃圾回收(GC,Garbage Collector),Python 会自动回收所有对象所占用的内存空间,因此开发者无须关心对象垃圾回收的过程。

**注意:**对一个变量执行 del 操作,该变量所引用的对象就会被回收,只有当对象的引用计数变成 0 时,该对象才会被回收。因此,如果一个对象有多个变量引用它,那么 del 其中一个变量是不会回收该对象的。

class Item:
    def __init__(self, name, price):
        self.name = name
        self.price = price

    def __del__ (self):  # 定义析构函数
        print('del删除对象')

im = Item('鼠标', 29.8)  # 创建一个Item对象,将之赋给im变量
x = im   # 打印im所引用的Item对象

del im
print('--这是最后一句Python语句--')  # 只有执行最后一句,该类的对象不再被使用,才del

'''输出:
--这是最后一句Python语句--
del删除对象
'''

str内置方法

__str__():
类似于Java中的“toString”方法;用于输出本类的信息;

class Student(object):
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return 'Student object (name: %s)' % self.name


print(Student('Michael'))  #  输出:Student object (name: Michael)
# 如果不定义"__str__",输出:<__main__.Student object at 0x109afb190>

类属性

属性的定义有两种方式:

  1. 装饰器,即:在方法上应用装饰器
  2. 静态字段,即:在类中定义值为property对象的静态字段

在哪里定义类属性:
1、直接在类中定义属性

class UserInfo(object):
    name = '两点水'

2、在构造函数中定义属性

class UserInfo(object):
    def __init__(self, name):
        self.name = name

类变量的定义方式:

  1. xx:公有变量
  2. _xx:单前置下划线,受保护的属性或方法(相当于protected),类对象和子类可以访问,from somemodule import *禁止导入
  3. __xx:双前置下划线,私有化属性或方法(相当于private),无法在外部直接访问(名字重整所以访问不到),访问这种变量只能通过getter和setter函数来实现。
  4. __xx__:双前后下划线,系统定义名字(不要自己发明这样的名字)
  5. xx_:单后置下划线,用于避免与Python关键词的冲突

静态变量

有两种方式:

  • 普通方式
  • property方式

普通静态变量

class Province:
    country = '中国'  # 类的静态变量,类似于Java中的static

    def __init__(self, name):
        self.name = name   # 普通(对象)的属性


obj = Province('河北省')  # 直接访问普通属性
print(obj.name)

print(Province.country)  # 直接访问静态变量

• 静态变量在内存中只保存一份
• 普通变量在每个对象中都要保存一份
应用场景: 通过类创建对象时,如果每个对象都具有相同的字段,那么就使用静态字段

property的静态变量

快速理解property方法:

class Foo:
    def get_bar(self):
        return 'constant info'
    BAR = property(get_bar)  # 创建常量"BAR",把get_bar方法的返回值赋值给它;

obj = Foo()
reuslt = obj.BAR    # 自动调用get_bar方法,并获取方法的返回值
print(reuslt)

property的构造方法中有个四个参数:

  • 第一个参数是方法名,调用 对象.属性 时自动触发执行方法
  • 第二个参数是方法名,调用 对象.属性 = XXX 时自动触发执行方法
  • 第三个参数是方法名,调用 del 对象.属性 时自动触发执行方法
  • 第四个参数是字符串,调用 对象.属性.doc ,此参数是该属性的描述信息
class Foo:
    def get_bar(self):
        return 'wupeiqi'
    def set_bar(self, value):  # *必须两个参数
        return
        return 'set value' + value
    def del_bar(self):
        return 'wupeiqi'
    BAR = property(get_bar, set_bar, del_bar, 'description...') # 定义一个BAR常量

obj = Foo()

obj.BAR  # 自动调用第一个参数中定义的方法:get_bar
obj.BAR = "alex"  # 自动调用第二个参数中定义的方法:set_bar方法,并将“alex”当作参数传入
del Foo.BAR  # 自动调用第三个参数中定义的方法:del_bar方法
obj.BAE.__doc__  # 自动获取第四个参数中设置的值:description...

操作静态字段

  • 由于静态字段方式创建属性具有三种访问方式,我们可以根据他们几个属性的访问特点,分别将三个方法定义为对同一个属性:获取、修改、删除
class Goods(object):

    def __init__(self):
        self.original_price = 100  # 原价
        self.discount = 0.8  # 折扣

    def get_price(self):
        new_price = self.original_price * self.discount  # 实际价格 = 原价 * 折扣
        return new_price

    def set_price(self, value):
        self.original_price = value

    def del_price(self, value):
        del self.original_price

    PRICE = property(get_price, set_price, del_price, '价格属性描述...')


obj = Goods()
obj.PRICE         # 获取商品价格
print('现在商品的价格是:',obj.PRICE)
obj.PRICE = 200   # 修改商品原价
print('修改后商品的价格是:',obj.PRICE)
#del obj.PRICE     # 删除商品原价

装饰器

如果你已经了解Python类中的方法,那么属性就非常简单了,因为Python中的属性其实是普通方法的变种。即,通过“@property”装饰器,将一个方法变成一个变量或常量。

装饰器的类变量

class Goods:
    @property
    def price(self):
        return 'hahha'

obj = Goods()
result = obj.price  # 完全把price()方法,搞成了一个变量;如果result = obj.price()  错误!
print(result)  # 输出:hahha
# print(obj.price())  # 报错:TypeError: 'str' object is not callable

属性的定义和调用要注意一下几点:
• 定义时,在普通方法的基础上添加 @property 装饰器;
• 定义时,属性仅有一个self参数
• 调用时,无需括号,即被@property装饰的方法不再是一个方法,而是一个类属性(类变量);

注意: 属性存在意义是:访问属性时可以制造出和访问字段(类变量)完全相同的假象
属性由方法变种而来,如果Python中没有属性,方法完全可以代替其功能。

装饰器与经典类、新式类

经典类(类名后的括号里没继承“object”):
# ############### 定义 ###############    
class Goods:
    @property
    def price(self):
        return "wupeiqi"
    
# ############### 调用 ###############

obj = Goods()
result = obj.price  # 使得price方法变成一个变量,并获取方法的返回值
print(result)

新式类(类名后的括号里有“object”):具有三种@property装饰器
# ############### 定义 ###############
# 新式类中的属性有三种访问方式,并分别对应了三个被@property、@方法名.setter、@方法名.deleter修饰的方法
class Goods(object):

    @property
    def price(self):
        print('@property')

    @price.setter
    def price(self, value):
        print('@price.setter')

    @price.deleter
    def price(self):
        print('@price.deleter')

# ############### 调用 ###############
obj = Goods()
obj.price          # 自动执行 @property 修饰的 price 方法,并获取方法的返回值
obj.price = 123    # 自动执行 @price.setter 修饰的 price 方法,并将 123 赋值给方法的参数
del obj.price      # 自动执行 @price.deleter 修饰的 price 方法

核心点:

  • 经典类中的属性只有一种访问方式,其对应被 @property 修饰的方法
  • 新式类中的属性有三种访问方式,并分别对应了三个被@property、@方法名.setter、@方法名.deleter修饰的方法

新式类的三个装饰

class Goods(object):
    def __init__(self):
        self.original_price = 100  # 原价
        self.discount = 0.8   # 折扣

    @property
    def price(self):
        new_price = self.original_price * self.discount   # 实际价格 = 原价 * 折扣
        return new_price

    @price.setter
    def price(self, value):
        self.original_price = value

    @price.deleter
    def price(self):
        del self.original_price

obj = Goods()
obj.price         # 获取商品价格
print('原商品价格:',obj.price)  # 输出:原商品价格: 80.0

obj.price = 200   # 修改商品原价
print('修改后商品价格:',obj.price)  # 输出:修改后商品价格: 160.0

del obj.price     # 删除商品原价

内置变量:name

在有些Python文件中,在最后一行常见这样的代码:

`if __name__ == '__main__':`

这到底是什么意思呢?

  1. __name__是一个变量。前后加了双下划线是因为这是系统定义的名字。普通变量不要使用此方式命名变量。

  2. Python有很多模块,而这些模块是可以独立运行的!这点不像C++和C的头文件。

  3. import的时候是要执行所import的模块的。

  4. __name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main__,通过if判断这样就可以执行“__mian__:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__mian__:”后面的内容。

通过上面方式,python就可以分清楚哪些是主函数,进入主函数执行;并且可以调用其他模块的各个函数等等。

  1. 如果模块是被导入,__name__的值为模块名字
  2. 如果模块是被直接执行,__name__的值为’__main__’

【Python】新手入门:python面向对象编程的三大特性是什么?python继承、封装、多态的特性都有哪些? Python作为面向对象编程语言,其核心特性包括继承、封装和多态。继承允许子类复用父类功能并扩展新特性,通过方法重写实现差异化。封装通过双下划线前缀隐藏内部细节,虽可强制访问但遵循约定保护数据安全。多态则基于动态类型特性,同一方法在不同子类中呈现不同行为,提升代码灵活性。三者协同构建高内聚低耦合的代码结构,既简化开发又增强可维护性。初学者可通过实践案例理解语法变形、方法重写等机制,结合工具调试逐步掌握面向对象编程精髓。 阅读详情

相关推荐

python中的面向对象(教学式讲解)

文章目录面向对象基础第一节 类和封装一.理解面向对象二.类和对象(封装)三.添加和获取对象属性四.类属性和实例属性五.类方法和静态方法 面向对象基础 第一节 类和封装 目标 理解面向对象 类和对象 添加和获取对象属性 一.理解面向对象 在讲面向对象之前,总结一下面向过程 1.1.面向过程和面向对象对比: 面向过程编程最易被初学者接受, 往往用一长段代码来实现指定功能 随着时间的推移,开始使用了函数式编程,增强代码的复用性和可读性,就变成了这样. 面向对象编程则是另一种解决问题的思路 python中“面向过程

十七光年的博客 2567

Python封装机制及实现方法

Python封装机制及实现方法 不光是 Python,大多数面向对象编程语言(诸如 C++、Java 等)都具备 3 个典型特征,即封装、继承和多态。其中,本节重点讲解 Python 类的封装特性,继承和多态会在后续章节给大家做详细讲解。 简单的理解封装(Encapsulation),即在设计类时,刻意地将一些属性和方法隐藏在类的内部,这样在使用此类时,将无法直接以“类对象.属性名”(或者“类对象.方法名(参数)”)的形式调用这些属性(或方法),而只能用未隐藏的类方法间接操作这些隐藏的属性和方法。 就好比使

ccc369639963的博客 1879

python基础:面向对象-封装

本文主要介绍了Python面向对象的封装操作,结合具体实例形式分析了Python面向对象程序设计中类方法的定义与使用相关操作技巧,能力有限,仅供大家参考

金鞍少年的博客 1706

封装机制封装的概念

4.2封装机制4.2.1封装的概念封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他部分只有通过包裹在数据外面的被授权的操作来与这个抽象数据类型交流与交互。也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和

大师的资源 5251

Python编程基础19:封装、继承与多态

文章目录零、本讲学习目标一、类的封装(一)为什么需要封装1、案例演示2、案例分析3、解决方案(二)如何实现封装1、封装的定义(2)封装的实现(3)案例演示 零、本讲学习目标 解如何利用封装保护属性 掌握单继承和多继承,会重写和调用父类方法 理解多态的使用 一、类的封装 (一)为什么需要封装 Python是面向对象的编程语言,因为面向对象中所有的实体都是以对象为基本单位的,以宏观世界的实体来映射到计算机世界中,每个对象有它自己的属性和自己的行为,我们用类来将这些属性和行为封装到一起,当它实例化出来一个

howard2005的专栏 1万+

ESP32 开发实战:VS Code 头文件波浪线及编译错误的终极解决方案

本文针对ESP32开发者在VS Code中常见的头文件红色波浪线和fatal error编译错误,提供了终极解决方案。通过详细讲解如何配置c_cpp_properties.json文件来修复编辑器智能提示,以及如何修改CMakeLists.txt来修正编译器路径,帮助开发者彻底解决环境配置问题,提升开发效率。

prometheus9mon的博客 294

C++:封装机制

封装机制:实现模块的接口与实现的分离 (I) Namespace (II) Class -使用示例:

what, when, why, how... 298

RK3568点不亮EK79007 MIPI屏?别急着改时序,先检查这个初始化命令

本文深入解析RK3568开发板调试EK79007 MIPI屏幕时初始化命令的关键作用,揭示80%的时序问题实际源于命令配置不当。通过典型故障案例,详细拆解初始化命令的调试方法、寄存器映射及系统化排查流程,帮助工程师快速定位和解决屏幕点亮问题。

weixin_33657090的博客 349

python类创建对象底层实现机制(简单)

定义一个最简单的类 class Money: pass print(Money.__name__) 尝试赋值,类名还是Money class Money: pass print(Money.__name__) a = Money print(a) print(a.__name__) Money是个变量,可以更改 class Money: pass ...

Never Give Up 1062

用Python爬取公众号历史所有文章,看这篇就够了

手把手教你爬取公众号历史所有文章

u010522887的专栏 1万+

Godot4 TileMap分层绘制全攻略:解决角色、树木遮挡混乱,打造正确视觉层级

本文详细介绍了Godot4 TileMap分层绘制技术,通过图层管理和Y-Sort功能解决2D游戏中角色与物体的遮挡问题。从基础图层设置到高级优化策略,帮助开发者打造符合自然视觉规律的场景层次,提升游戏沉浸感。特别针对TileMap和TileSet的使用提供了实用技巧和代码示例。

weixin_28717411的博客 510

[python]-面向对象基础

在Python中,有一些可以给Python类增加魔力的特殊方法,它们总是被双下划线所包围,我们称之为魔法方法。在特殊情况下会被自动调用,不需要开发者手动去调用。继承就是子类继承父类的属性和方法,使得子类对象(实例)具有父类的特征和行为。在面向对象中,封装就是隐藏对象的属性和实现细节,仅对外提供公共的访问方式。self是python内置的关键字,用于指向对象实例本身。同一个对象在不同场景表现出不同状态.。类是对现实事物的抽象描述(图纸)对象是对类的具体实现(实物)

. 600

37、深入解析SCTP与RTP传输协议

本文深入解析了SCTP与RTP两种重要传输协议。SCTP提供可靠的多流数据传输,支持关联管理、选择性确认和错误处理,适用于高可靠性场景;RTP则专注于实时音视频数据的低延迟传输,配合RTCP实现质量监控。文章详细介绍了两种协议的数据结构、工作流程及应用场景,并对比其特性,帮助开发者根据可靠性、实时性和多流需求选择合适的协议。

time3的博客 83

python面向对象三大特性详解 - 封装 & 继承 & 多态

面向对象编程有三大特性:封装、继承、多态,本文带大家来认识和了解这三个特性~

YLF123456789000的博客 1631

RK3588芯片:ALSA音频通路下HDMI与耳机自动切换的技术探索

摘要:本文详细探讨了基于RK3588芯片的HDMI与耳机自动切换方案。文章首先剖析了ALSA音频架构的核心组件与工作原理,接着介绍了RK3588芯片的硬件特性及音频处理优势。重点阐述了自动切换的实现原理,包括硬件检测机制、ALSA驱动处理逻辑和软件控制流程,并提供了详细的配置步骤。同时针对常见问题如切换异常、音频质量下降等给出了解决方案。该方案通过合理配置设备树和ALSA文件,实现了音频输出的智能切换,提升了用户体验,展现了RK3588在音频处理领域的强大性能。未来随着AI音频技术的发展,该方案在智能家居、

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 266

SSH 远程登录报错:kex_exchange_identification: Connection closed.....

不知道为啥会出现这样的情形,最近这段时间登录都是正常的,不知道哪里抽风了,就提示这个。错误信息 kex_exchange_identification: Connection closed by remote host 出现在尝试使用 SSH 连接到远程服务器过程中,表明在密钥交换阶段的一开始,远程主机就关闭了连接。服务器的sshd_config文件中配置错误,可能是不允许的加密算法、修订文件中的语法错误,或者未正确指定用于SSH的HostKey。如果当前已有太多活动连接,新的连接尝试可能会被拒绝。

飞越蓝天的专栏 8296

【Python学习教程】Python类和对象

转载于http://c.biancheng.net/python/ Python 语言在设计之初,就定位为一门面向对象的编程语言,“Python 中一切皆对象”就是对 Python 这门编程语言的完美诠释。 类和对象是 Python 的重要特征,相比其它面向对象语言,Python 很容易就可以创建出一个类和对象。同时,Python 也支持面向对象的三大特征:封装、继承和多态。 本章不仅会教你掌握 Python 类和对象的基本语法,还可以带你深入底层,了解 Python 面向对象的实现原理。 什么是面向对象,

qq_41854911的博客 1万+

EZ-INSAR工具箱(使用历史问题)

把 rasterio 升到 1.3+(或退回 py39)→features能 import → 脚本能跑 → 出图 → MATLAB 不再报错!

2301_79258000的博客 121

面向对象编程及其三大特性

编程语言分为面向过程编程、函数式编程和面向对象编程。其实python就是一种面向对象编程,那么我们先了解一下它们的特点和优缺点以及它们的区别是什么。 面向过程编程:“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为 目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。 面向过程编程最易被初学者接受,其往往用...

Mr_fengzi的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Python 面向对象编程中的封装特性详解

Python 面向对象编程中的封装特性详解

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 1913

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Python 面向对象三大特性详解

封装是面向对象编程的一个基本特性,它指的是将数据(属性)和操作数据的方法(函数)封装成一个整体,即类。封装的核心思想是隐藏对象的内部实现细节,只暴露接口让外部通过这些接口与对象交互。这不仅能提高代码的安全性,还能降低系统复杂度。继承是面向对象编程中的一个重要特性,它允许我们创建一个新类,新类可以继承已有类的属性和方法。继承提供了一种机制,让我们可以在不修改现有代码的基础上创建新的功能。通过继承,子类可以复用父类的代码,并且可以在子类中扩展或重写父类的方法。多态是指同一个方法在不同对象上表现出不同的行为。

m0_64881179的博客 2262

python——面向对象(1)类与实例、对象和封装

Python是一门解释型、面向对象以及动态数据类型的高级程序设计语言。正因为如此,在Python中创建一个类和对象是很容易的。面向对象编程OOP——Object Oriented Programming,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行,为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

2301_77698138的博客 1706

Python:面向对象、类与实例属性、封装、继承、多态

Python中面向对象将现实世界中的实体抽象为对象,这些对象通过类来定义,将所有的功能统一保存到对应的对象中,比如a拥有某些功能,将这些功能与a进行绑定,需要的时候直接从a中找到该对象即可。这种方式编写的代码,比较容易阅读,并且比较易于维护,容易复用。但是这种方式编写,不太符合常规的思维,编写起来较麻烦,相比于c语言:c语言是把步骤拆分从一个个方法,通过执行一个个方法来解决问题,而面向对象是将编程抽象成一个对象,可以直接使用,编程的过程就是设置这些对象可以做什么有什么功能。

m0_58248149的博客 1184

Python面向对象的封装特性详解

本文介绍了Python中面向对象编程的封装特性及其实现方式。主要内容包括: 封装的概念与目的:隐藏实现细节、保护数据完整性、降低复杂性和提高可维护性 Python的三种封装级别: 公有成员(默认) 保护成员(单下划线_开头,约定私有) 私有成员(双下划线__开头,通过名称修饰实现真正私有) 名称修饰机制:Python会将私有成员自动重命名为_ClassName__member形式 属性封装方法: 传统getter/setter方式 推荐使用@property装饰器实现更优雅的属性访问控制 文章通过代码示例详

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 806

【新人系列】Python 入门(十八):面向对象特性

📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们一起交流~📚 专栏简介:在这个专栏,我将带着大家从 0 开始入门 Python 的学习。在这个 Python 的新人系列专栏下,将会总结 Python 入门基础的一些知识点,方便大家快速入门学习~

Newin2020的博客 1745
上一篇: 【Python功能体】语句写法:输入、输出、选择、循环
下一篇: 【无线渗透】连接第一块无线网卡
ALGO阿狗
博客等级 码龄9年 64粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值