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通过scapy获取局域网所有主机mac地址示例
May 04 Python
视觉直观感受若干常用排序算法
Apr 13 Python
Python中import机制详解
Nov 14 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
python实现批量文件重命名
Oct 31 Python
Python实现微信好友的数据分析
Dec 16 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 Python
Python json转字典字符方法实例解析
Apr 13 Python
简单了解pytest测试框架setup和tearDown
Apr 14 Python
Django框架请求生命周期实现原理
Nov 13 Python
python flask框架快速入门
May 14 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
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
iis6+javascript Add an Extension File
2007/06/13 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
JavaScript实现前端倒计时效果
2021/02/09 Javascript
JavaScript canvas实现跟随鼠标移动小球
2021/02/09 Javascript
python数据结构之二叉树的建立实例
2014/04/29 Python
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
Python装饰器原理与用法分析
2018/04/30 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
销售人员个人求职信
2013/09/26 职场文书
大学生军训感想
2014/02/16 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
自我推荐信范文
2014/05/09 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
2014年教务处工作总结
2014/12/03 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
太行山上观后感
2015/06/05 职场文书
git中cherry-pick命令的使用教程
2022/06/25 Servers