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下singleton模式的实现方法
Jul 16 Python
python实现端口转发器的方法
Mar 13 Python
python smtplib模块发送SSL/TLS安全邮件实例
Apr 08 Python
python函数局部变量用法实例分析
Aug 04 Python
Python 转义字符详细介绍
Mar 21 Python
python实现pdf转换成word/txt纯文本文件
Jun 07 Python
使用PM2+nginx部署python项目的方法示例
Nov 07 Python
对python中Json与object转化的方法详解
Dec 31 Python
Python tkinter三种布局实例详解
Jan 06 Python
python实现PCA降维的示例详解
Feb 24 Python
Python轻量级web框架bottle使用方法解析
Jun 13 Python
matplotlib绘制多子图共享鼠标光标的方法示例
Jan 08 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入门基础之php代码写法
2011/12/30 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
php使用cookie保存登录用户名的方法
2015/01/26 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
php ajax数据传输和响应方法
2018/08/21 PHP
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
javascript用户注册提示效果的简单实例
2013/08/17 Javascript
JavaScript使用Replace进行字符串替换的方法
2015/04/14 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
微信小程序-API接口安全详解
2019/07/16 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
Python的缺点和劣势分析
2019/11/19 Python
tensorflow的计算图总结
2020/01/12 Python
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
动态密码技术
2012/10/18 面试题
干部个人考察材料
2014/12/24 职场文书
2019中小学生安全过暑期倡议书
2019/06/24 职场文书
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸