首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 封装

封装(Encapsulation)是对 object 的一种抽象,即将某些部分隐藏起来,在程序外部看不到,即无法调用(不是人用眼睛看不到那个代码,除非用某种加密或者混淆方法,造成现实上的困难,但这不是封装...要了解封装,离不开“私有化”,就是将或者函数中的某些属性限制在某个区域之内,外部无法调用。 Python 中私有化的方法也比较简单,就是在准备私有化的属性(包括方法、数据)名字前面加双下划线。...果然隐藏了,在的外面无法调用。再试试那个函数,可否? if __name__ == "__main__":     p = ProtectMe()     p.code()     p....,code() 方法和__python() 方法在同一个中,可以调用之。后面的那个 p.__Python() 试图调用那个私有方法。...用上面的方法,的确做到了封装。但是,我如果要调用那些私有属性,怎么办? 可以使用 property 函数。 #!

1.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

Python封装教程

一、什么是封装封装的本身意思其实就和闭包函数一样,就是把一个函数和变量全都包在一起,但其实这样的说法不是很具体,就是一种很片面的解释二、为什么要封装封装数据的主要原因是:保护隐私封装方法的主要原因是:隔离复杂度...三、如何封装1.在里面封装其实就是:隐藏属性:通过 __变量名来隐藏隐藏方法:通过 __方法名来隐藏2.隐藏属性:是为了数据的安全隐藏nmae属性的例子class Person: def __init...__name=name self.age=agep=Person('xichen',18)print(p.age)# 这个时候我们实例化出来的对象是访问不到init里的__name属性的...__namep=Person('xichen',18)print(p.age)p=Person('xichen',18)print(p.get_name())通过对象名.名被隐藏的属性名print(p...__name = new_namep = Person('xc', 1.82, 70)# python学习交流群:711312441# 按照属性进行调用print(p.name) # 调用property

80710

Python: 封装技巧, 以 Log 为例

本文将通过一个具体的日志记录 MyLog,介绍如何在 Python 中使用封装技巧来实现一个功能强大的日志记录系统。 什么是封装封装是面向对象编程(OOP)的四大基本原则之一。...封装通过将数据和操作数据的方法包装在一个单独的单元中,即中,来保护数据不被外部代码直接访问和修改。...下面是 MyLog 的完整代码: python import os import logging import sys # 定义常量 PATH = '....使用示例 下面是如何使用 MyLog 的一个示例: python # 使用 MyLog 并指定日志路径和文件名 config = { 'logpath': '....总结 通过以上示例,我们展示了如何在 Python 中使用封装技巧实现一个功能强大的日志记录系统。封装不仅提高了代码的可维护性和重用性,还使得日志记录器的配置和使用更加灵活和简洁。

6510

C++封装 | 封装

C++公用接口与私有实现的分离 C++通过来实现封装性,把数据和与这些数据有关的操作封装在一个中,或 者说,的作用是把数据和算法封装在用户声明的抽象数据类型中,在声明了一个以后,用户主要是通过调用公用的成员函数来实现提供的功能...C++公用成员函数是用户使用的公用接口或者说是的对外接口,当然并不一定要把所有成员函数都指定为public的,但这时这些成员函数就不是公用接口了。...中被操作的数据是私有的,实现的细节对用户是隐蔽的,这种实现称为私有实现,的公用接口与私有实现的分离形成了信息隐蔽。 ...如果想修改或扩充的功能,只需修改本类中有关的数据成员和与它有关的成员函数,程序中外的部分可以不必修改。...以上,如果你看了觉得对你有所帮助,就给小林点个赞叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C++封装 | 封装 更多案例可以go公众号:C语言入门到精通

1.7K64

Python学习手册之数据封装方法、

在上一篇文章中,我们介绍了 Python 的内部方法、操作符重载和对象生命周期,现在我们介绍 Python 的数据封装方法、静态方法和属性函数。...查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/10017357.html 数据封装 面向对象编程的一个关键部分是封装,它涉及将相关变量和函数打包到一个简单易用的对象...Python 的设计哲学略有不同。它认为 "我们都是成年人",这意味着你不应该对的访问设计任意的限制。因此,没有任何方法强制方法或属性是严格私有的。...__Name) 运行结果: >>> ZS ZS AttributeError: 'Name' object has no attribute '__Name' >>> 基本上,Python 通过内部更改名称以包含名来保护这些成员...方法的常见用途是工厂方法,它们使用与传递的构造函数的参数不同的参数来实例化实例。 方法被装饰符 @classmethod 标记为方法。

63830

【C++】封装 ① ( 和对象 | 面向对象三大特征 - 封装 继承 多态 | 封装引入 )

: 定义了 上述 MyClass 的 实例对象 myObject ; MyClass myObject; // 创建一个 MyClass 类型的对象 二、封装 1、面向对象三大特征 面向对象三大特征...: 封装 Encapsulation : 将 数据 和 操作 封装中 , 可以将 内部的 实现细节 隐藏 , 只暴露有限的 接口 与外部进行交互 , 从而达到保护 对象的 内部状态 不被外部随意修改.../ 继承 Inheritance / 多态 Polymorphism 共同构成了面向对象编程的基本原则 , 为代码的 可读性 / 可维护性 / 可扩展性 提供支持 ; 2、封装引入 封装 Encapsulation...: 将 数据 和 操作 封装中 , 可以将 内部的 实现细节 隐藏 , 只暴露有限的 接口 与外部进行交互 , 从而达到保护 对象的 内部状态 不被外部随意修改 ; 将 现实世界 中 存在的...客观事物 封装成 抽象 的 , 中 包含了 数据 和 操作 , 只有 可信的 或 对象 才能访问 隐藏起来的信息 ; 大部分类默认只能访问 公开的接口 ; C++ 中 , 通过 "

15710
领券