Python变量访问权限控制详解


Posted in Python onJune 29, 2019

oop1.py文件代码

# user/bin/python
class Foo:
def bar(self):
print('ok')
def hello(self, name):
print("i am %s" % name)
foo = Foo()
foo.bar()
foo.hello('Fred Huang')
class Foo:
def __init__(self, name, age):
''' 初始化实例属性'''
self._name = name
"""
该方法不能通过from module import *导入到另外一个模块中。
但是可以单独导入from module import _name 导入
"""
self.age = age
def _get_information(self):
"""
单下划线命名的变量(包括类,函数,普通变量)
该方法不能通过from module import *导入到另外一个模块中。
但是可以单独导入from module import _get_information 导入
"""
print(self.name, self.age)
return "哈哈哈"
def gee_data(self):
print('ok')
obj1 = Foo('Fred Huang', "24")
# obj1._get_information()
# print(obj1._get_information())
def _get_date():
print('ok')
_name1 = 'huang'
"""
该方法不能通过from module import *导入到另外一个模块中。
但是可以单独导入from module import _get_date,_name 导入
"""

oop2.py文件代码

from oop1 import * # 不会导入单下划线的类,变量,函数
from oop1 import Foo
from oop1 import _name1
foo=Foo('Fred huang','24')
print(foo._name)
print(_name1)

另外双下划线变量,类本身可以访问__变量,但是在其它作用域不行

可以通过_classname__变量来访问

在函数方法内,class内,没有用self修饰的变量;【又为临时变量,只在函数内部有效,obj不能访问】

  • 全局变量:在模块内,所有函数方法外,class外的变量【在内存中有唯一地址,所有实例共享这一个变量】
  • 局部变量:在函数方法内,class内,没有用self修饰的变量;【又为临时变量,只在函数内部有效,obj不能访问】
  • 实例变量:在class内的方法里面,并且用self修饰的变量;【所有的实例变量和实例方法(有self参数的方法),都是obj的属性,可以通过obj直接访问】
  • 静态变量【类变量】:在class内,但是在class内的所有方法外的变量;【类变量的访问和修改都需要用这种格式:类名.变量名,或者在使用前,使用global关键字声明该变量(因为python在函数中会屏蔽类变量,如果不显式指明,这个变量只会当做与类变量同名的局部变量,从而出错)】

如图

Python变量访问权限控制详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python Trie树实现字典排序
Mar 28 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
Python实现KNN(K-近邻)算法的示例代码
Mar 05 Python
树莓派采用socket方式文件传输(python)
Jun 22 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
Jun 25 Python
python调用c++返回带成员指针的类指针实例
Dec 12 Python
Python xlrd模块导入过程及常用操作
Jun 10 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
Sep 09 Python
matplotlib绘制正余弦曲线图的实现
Feb 22 Python
Python快速实现一键抠图功能的全过程
Jun 29 Python
python字典进行运算原理及实例分享
Aug 02 Python
python pandas生成时间列表
Jun 29 #Python
python粘包问题及socket套接字编程详解
Jun 29 #Python
python 基于TCP协议的套接字编程详解
Jun 29 #Python
Python进阶:生成器 懒人版本的迭代器详解
Jun 29 #Python
简单了解Python matplotlib线的属性
Jun 29 #Python
Jacobi迭代算法的Python实现详解
Jun 29 #Python
Gauss-Seidel迭代算法的Python实现详解
Jun 29 #Python
You might like
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
解密效果
2006/06/23 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
获取body标签的两种方法
2011/10/13 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
[02:56]DOTA2矮人直升机 英雄基础教程
2013/11/26 DOTA
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
Tornado高并发处理方法实例代码
2018/01/15 Python
总结30个CSS3选择器
2017/04/13 HTML / CSS
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
什么是.net
2015/08/03 面试题
岗位廉洁从业承诺书
2014/03/28 职场文书
幼儿教师寄语集锦
2014/04/03 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
代办社保委托书范文
2014/10/06 职场文书
创先争优宣传标语
2014/10/08 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
新郎新娘答谢词
2015/01/04 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
通知的写法
2015/04/23 职场文书
付款证明格式范文
2015/06/19 职场文书