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多线程编程简单介绍
Apr 13 Python
python使用自定义user-agent抓取网页的方法
Apr 15 Python
python中input()与raw_input()的区别分析
Feb 27 Python
python如何通过protobuf实现rpc
Mar 06 Python
Python实现的字典值比较功能示例
Jan 08 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
PyGame贪吃蛇的实现代码示例
Nov 21 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
Python OpenCV之图片缩放的实现(cv2.resize)
Jun 28 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
13个Pandas实用技巧,助你提高开发效率
Aug 19 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 XPath对XML文件查找及修改实现代码
2011/07/27 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
jQuery+json实现的简易Ajax调用实例
2015/12/14 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
js数组去重的方法总结
2019/01/18 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
Python学习小技巧之列表项的拼接
2017/05/20 Python
Python rstrip()方法实例详解
2018/11/11 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
简短的公司员工自我评价分享
2013/11/13 职场文书
节约用水演讲稿
2014/05/21 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js
特别篇动画《总之就是非常可爱 ~制服~》PV公开,2022年夏季播出
2022/04/04 日漫
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python