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多进程机制实例详解
Jul 02 Python
使用Python将数组的元素导出到变量中(unpacking)
Oct 27 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 Python
django利用request id便于定位及给日志加上request_id
Aug 26 Python
在mac下查找python包存放路径site-packages的实现方法
Nov 06 Python
使用Python实现微信提醒备忘录功能
Dec 04 Python
教你一步步利用python实现贪吃蛇游戏
Jun 27 Python
python暴力解压rar加密文件过程详解
Jul 05 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
Aug 15 Python
Python实现AES加密,解密的两种方法
Oct 03 Python
python 调用Google翻译接口的方法
Dec 09 Python
python中K-means算法基础知识点
Jan 25 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编程与应用
2006/10/09 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
js数字输入框(包括最大值最小值限制和四舍五入)
2009/11/24 Javascript
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
javascript版2048小游戏
2015/03/18 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
python网络编程之读取网站根目录实例
2014/09/30 Python
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
python正则中最短匹配实现代码
2018/01/16 Python
python实现生命游戏的示例代码(Game of Life)
2018/01/24 Python
Django如何实现上传图片功能
2019/08/16 Python
python分布式计算dispy的使用详解
2019/12/22 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
2020/02/25 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
2020/05/10 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
应届生服装设计自我评价
2013/09/20 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
民族学专业求职信
2014/07/28 职场文书
大专护理专业自荐信
2015/03/25 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS