python 属性封装

120

 1 #封装
 2
 3 class Person:
 4     def __init__(self,name,passwd):
 5         self.name=name
 6         self.__passwd=passwd
 7
 8     def get_pwd(self):
 9         return self.__passwd
10
11 Jack=Person("Jack","abc123")
12
13 print(Jack._Person__passwd)
14 print(Jack.get_pwd())
F:\pythonkaifa\python_learning\20191>python 封装.py
abc123
abc123

  

 1 #封装
 2
 3 class Person:
 4 #静态属性也可以私有
 5     __key=123
 6     def __init__(self,name,passwd):
 7         self.name=name
 8         self.__passwd=passwd
 9     #私有方法
10     def __get_pwd(self):
11         print(self.__dict__)
12         return self.__passwd
13
14     def login(self):
15         self.__get_pwd()
16
17 Jack=Person("Jack","abc123")
18
19 #print(Jack._Person__passwd)
20 #print(Jack.get_pwd())
21 Jack.login()

原文地址:https://www.cnblogs.com/Mengchangxin/p/10336291.html

时间: 2024-12-19 22:22:24

python 属性封装的相关文章

python 3 封装

python 3 封装 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小鱼,小虾,小王八,一起装进麻袋,然后把麻袋封上口子.照这种逻辑看,封装='隐藏',这种理解是相当片面的. 先看如何隐藏 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) 其实这仅仅这是一种变形操作 类中所有双下划线开头的名称如__x都会自动变形成:_类名__x的形式: class A: __N=0 #类的数据属性就应该是共享的,但是语法上是可以把类的数据属性设置成私有的如__N,会变形为_A__N d

python属性查找

python中执行obj.attr时,将调用特殊方法obj.__getattribute__('attr'),该方法执行搜索来查找该属性,通常涉及检查特性.查找实例字典.查找类字典以及搜索基类.如果搜索过程失败,最终会尝试调用类的__getattr__()方法.如果这也失败,则抛出AttributeError异常. 具体步骤如下: 1.如果attr是个特殊属性(例如python提供的),直接返回. 2.在obj.__class__.__dict__即类字典中查找attr,如果attr是个data

C# 类属性封装、字段的详解

今日敲代码时,突然感觉对类的属性封装.字段有点犯迷糊了..连基础的都不知道了,那敲的代码怎么能严谨高效的.果断拿起各种高级编程.大全啥的翻起来~~这不再把自己的理解写下来(定义都是直接抄书的),献给同样迷糊的小伙伴. 先说下类的成员,它分为数据成员和函数成员.数据成员,简单点可以理解成类的数据,包含了字段.常量(const).事件:函数成员,就是操作类中的数据,包含方法.属性.构造函数.终结器(析构函数).运算符.索引器.(就提一下,方便后面说下去,要都解释就偏题了)字段就是类里定义的变量,而属

C++/CLI 托管C++之类、属性封装【7】

CLI封装类时,涉及确定性析构与非确定性析构,属性封装使用property. [1]C++导出类 class EXPORTDLL_CLASS CAddSub { public: CAddSub(){ m_len = 0; } ~CAddSub(){ } public: int Add(int x, int y){ return x+y; } int Sub(int x, int y){ return x-y; } int GetLength() { return(m_len); } void S

将Python脚本封装成exe可执行文件 转

将Python脚本封装成exe可执行文件 http://www.cnblogs.com/renzo/archive/2012/01/01/2309260.html cx_freeze是用来将 Python 脚本封装成可执行程序的工具,支持最新的Python3.2版本.生成的执行文件具有跨平台性,而且运行的系统无须安装Python.目前类似功能的工具还有py2exe 和 PyInstaller,其中貌似py2exe知名度最高了,但是很久没有更新了,至于打包质量不做评价,毕竟萝卜青菜各有所爱:PyI

java 属性封装

//封装性 //封装概念: //1.是面向对象思想的三大特征之一 //2.封装细节是隐藏的,仅对外提供访问接口 //3.封装分类: //属性封装 //方法封装 //类的封装 //组件的封装 //模块化封装 //系统级封装 //封装好处: /** 模块化 信息隐藏 代码重用 插件化易于调用 具有安全性 */ //最简单的属性封装: public class Test17{ public static void main(String args[]){ Dog d1=new Dog(); //d1.

struts2获取表单数据之 属性封装 模型驱动 表达式封装 对象封装到list集合 对象封装到map集合 五种方便的封装方式

一.属性封装 属性封装是在action里面设定属性值,属性名字一定要和表单中的name一样,action中extends ActionSupport demo1.jsp: <body> This is my login JSP page. <br> <form action="demo1.action" method="post" > username<input type="text" name=&qu

Struts2框架的数据封装一之属性封装(属性封装的第二种方式:封装成javaBean)

Struts2中提供了两类数据封装的方式? 第一种方式:属性驱动(有两种方式:一个对属性,另外一个是将参数封装到javaBean中) B. 在页面上,使用OGNL表达式进行数据封装.(将参数封装到javaBean中) * 在页面中使用OGNL表达式进行数据的封装,就可以直接把属性封装到某一个JavaBean的对象中. * 在页面中定义一个JavaBean,并且提供set方法:例如:private User user; * 页面中的编写发生了变化,需要使用OGNL的方式,表单中的写法:<input

python之--------封装

一.封装: 什么是封装呢?(封装不是单纯意义的隐藏,其实它还是可以查看的) 就是把一些不想让别人看的给隐藏起来了 封装数据:目的是保护隐私 功能封装:目的是隔离复杂度 如果用了私有的,在类的外部,无法直接使用变形的属性,但是在类的内部可以直接使用 1 1.用我们常用的__init__方法里的self取值 2 class Course:#恰好给我们提供了实现这种思路的方法 3 # #一种思路,python 4 def __init__(self,price,period,name): 5 self