首页
学习
活动
专区
工具
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

77310

C++封装 | 封装

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

1.6K64

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

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

62430

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

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

13710

Python面向对象日志封装#学习猿地

### 成员方法中的self + self在方法中只是一个形参,并不是关键字 + self 单词本身的意思 自己 + self 在的方法中 代表 当前这个对象 + self 代表调用这个方法的对象...,谁调用了这个方法,self就代表谁 + self 就可以在的内部代替对象进行各种操作 ### 方法的分类 + 含有self或者可以接受对象作为参数的方法: 非绑定方法 + 不含self或者不能接受对象作为参数的方法...:绑定方法 非绑定方法,可以使用对象去访问 绑定方法,只能通过去访问 ---- ### 魔术方法 > 魔术方法也和普通方法一样都是中定义的成员方法 > 魔术方法不需要去手动调用的,魔术方法会在某种情况下...python import time class writeLog(): # 成员属性 # 文件的路径 fileurl = './' # 日志文件的名称 filename...= '2019-09-19' # 初识化 打开文件 def __init__(self): #完成文件的打开 print('初始化方法触发

37410
领券