文档章节

python 面向对象二

明月知心
 明月知心
发布于 2016/11/22 22:18
字数 469
阅读 11
收藏 0

私有字段 ( filed)

不想被外部访问或不想暴露给外部的内容,可以定义一个 私有字段 self.__xxx

私有字段不能被 对象和 类直接访问,需要 定义 1个函数来访问 (不推荐,相当于暴露)

class file():
    files="文件之一"        #静态字段
    def __init__(self,name,size):
        self.size=size      #动态字段
        self.__name=name    #私有字段
    def show(self):         # 通过函数访问私有字段  还是暴露给第三方,一般不这么写
        return self.__name
esdn=file("岛国风光","80g")
print(file.files)
print(esdn.size)
print(esdn.show()) #对象访问私有字段
print(file.show(esdn))#类访问私有字段
#print(esdn.__name)
#直接访问私有字段则会报错

私有方法:和私有字段类似不能直接调用 ,也需要通过函数调用(不推荐,相当于暴露)

def __foo():

def __foo(self):                #私有方法
    print('这是1个私有方法')       
def show2(self):                 #通过函数访问私有方法 还是暴露给第三方,一般不这么写
    self.__foo()
esdn.show2()         #通过对象访问私有方法
file.show2(esdn)     #通过类访问私有方法

不通过函数强行访问一个私有方法:虽然可以,但不推荐

esdn._file.__foo() 注意前面是1个 【 _ 】,后面是 2 个下划线  

结构:实例对象._类.__私有方法

私有字段权限设置

只读,可写(修改)

class Moive(object):              #必须继承object
    def __init__(self,name):
        self.__foo=name    
    @property               #私有字段只读
    def foo(self):
        return self.__foo
    @foo.setter             #私有字段可以修改
    def foo(self,value):
        self.__foo=value
moive1=Moive('大桥未久')  
print(moive1.foo)          #访问私有字段
moive1.foo=('上原亚衣')      #访问私有字段
print(moive1.foo)

一般用@property 设置为只读 ,@property +  @foo().setter 设置为可写 ,用他俩访问私有字段时

类声明时,括号内要加 object

© 著作权归作者所有

共有 人打赏支持
明月知心
粉丝 6
博文 158
码字总数 71882
作品 0
武汉
程序员
私信 提问
如何捅破python编程的那层纸

如何捅破python编程的那层纸 一些朋友自学python过程中,发现书也能看懂,书上的玩具代码也能看懂,但为啥自己不能做习题,不能写代码解决问题,自己不能动手写代码?原因是初学者没有学会计...

黄哥Python培训
2015/02/10
0
0
云计算培训学院,云计算Python自动化运维开发实战

都忘记是什么时候知道python的了,我是搞linux运维的,早先只是知道搞运维必须会shell,要做一些运维自动化的工作,比如实现一些定时备份数据啊、批量执行某个操作啊、写写监控脚本什么的。后...

长沙千锋
05/15
0
0
如何学习一门新的语言二——方法与步骤

之前发表过一篇文章,也是谈如何学习一门新的语言《如何学习一门新的语言》,这篇文章主要的关注点是心态。 今天这篇文章主要的关注点是具体的方法和步骤,是我学习C++和python的一些经验,整...

晨曦之光
2012/06/06
121
0
如何利用Python实现权限设置?有些人只怕连这个操作都没想到过!

一、私有化的实现 在Python中想定义一个类是比较简单的,比如要定义一个Person类,如下代码即可: 当然我们也可以给类添加相应的属性,比如Person的姓名,年龄,性别等,并且在new一个Perso...

Python新世界
07/26
0
0
[原]我为什么要学习python

引言:学习python近两年,谈谈我对于python的一点小理解,也从一些方面谈谈自己微薄的想法,也就是我为什么学习python 这里我不讨论python的一些有用的库或者框架,只从语言本身,最小支持的...

长平狐
2012/11/14
140
1

没有更多内容

加载失败,请刷新页面

加载更多

mac 下 mysql 8.0.13 安装并记录遇到的问题 以便以后查看

安装 官网mysql 下载地址 安装过程 省去 安装好之后 下载navicat 错误1 链接 遇到 mysql 2003 - Can't connect to MySQL server 错误, 解决方案 重启mysql 服务 #错误2 ERROR 1045: Acces...

杭州-IT攻城狮
昨天
4
0

中国龙-扬科
昨天
1
0
[Spring4.x]基于spring4.x纯注解的Web工程搭建

在前文中已经说明了如何基于 Spring4.x+ 版本开发纯注解的非web项目,链接如下: https://my.oschina.net/morpheusWB/blog/2985600 本文则主要说明,如何在Web项目中,"基于spring纯注解方式...

morpheusWB
昨天
13
0
基础编程题目集-7-13 日K蜡烛图

股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线、按周的周K线、按月的月K线等。以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开...

niithub
昨天
5
0
Jenkins window 下的安装使用

1.下载:https://jenkins.io/download/ 双击安装完毕,将自动打开浏览器: http://localhost:8080 打开对应位置的文件,将初始密钥粘贴至输入框。 第一个是 安装默认的软件;第二个是 自定义...

狼王黄师傅
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部