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实现倒计时的示例
Feb 14 Python
Python import用法以及与from...import的区别
May 28 Python
python实现神经网络感知器算法
Dec 20 Python
Python简单生成随机数的方法示例
Mar 31 Python
Python 修改列表中的元素方法
Jun 26 Python
pyqt5实现俄罗斯方块游戏
Jan 11 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
python绘制雪景图
Dec 16 Python
python3爬取torrent种子链接实例
Jan 16 Python
Python更新所有已安装包的操作
Feb 13 Python
Python基于Tkinter编写crc校验工具
May 06 Python
PyQt5实现登录页面
May 30 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的autoload机制的实现解析
2012/09/15 PHP
PHP简单日历实现方法
2016/07/20 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
jquery提示 "object expected"的解决方法
2009/12/13 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
2015/12/03 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
深入理解Node module模块
2018/03/26 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
JavaScript设计模式之装饰者模式实例详解
2019/01/17 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
vue.js实现图书管理功能
2019/09/24 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
Python外星人入侵游戏编程完整版
2020/03/30 Python
Python中pillow知识点学习
2018/04/30 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
美国知名运动产品零售商:Foot Locker
2016/07/23 全球购物
巴西男士胡须和头发护理产品商店:Beard
2017/11/13 全球购物
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
机械绘图员岗位职责
2013/11/19 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
赔偿协议书范本
2014/09/12 职场文书
Spring Bean是如何初始化的详解
2022/03/22 Java/Android
Python借助with语句实现代码段只执行有限次
2022/03/23 Python