python类定义全局变量_python之全局变量
http://www.cnblogs.com/phoebus0501/archive/2011/01/18/1938728.html
应该尽量避免使用全局变量, 因为:
1) 不同的模块都可以自由的访问全局变量,可能会导致全局变量的不可预知性。
对全局变量,如果程序员甲修改了_a的值,程序员乙同时也要使用_a,这时可能导致程序中的错误。这种错误是很难发现和更正的。
2) 全局变量降低了函数或模块之间的通用性,不同的函数或模块都要依赖于全局变量。
同样,全局变量降低了代码的可读性,阅读者可能并不知道调用的某个变量是全局变量。
但是某些时候,全局变量能够解决局部变量所难以解决的问题。事物要一分为二。
python中全局变量的使用:
1 声明法
1) 在文件开头声明全局变量: VAR = 0 (将全局变量大写便于识别)
2) 在具体函数中使用该变量时,需要事先声明 global VAR, 否则系统将该变量视为局部变量。
VAR = 10 #声明全局变量
def get_var() :
global VAR #声明变量为global
print VAR,
VAR += 1
if __name__ == '__main__' :
for i in range(5):
get_var()
#Result: 10 11 12 13 14
2 模块法(推荐)
1) 把全局变量定义在一个单独的模块中:
#global.py
GLOBAL_1 = 1
GLOBAL_2 = 2
GLOBAL_3 = 'Hello World'
2) 然后在另一个模块中导入全局变量定义模块,在新模块中使用全局变量:
import globalValues
def printGlobal():
print(globalValues.GLOBAL_1)
print(globalValues.GLOBAL_3)
globalValues.GLOBAL_2 += 1 # modify values
if __name__ == '__main__':
printGlobal()
print(globalValues.GLOBAL_2)
第二种方法,适用于不同文件之间的变量共享,而且一定程度上避免了开头所说的全局变量的弊端,推荐!
3. 使用类变量
1) 定义全局变量为类变量 var = 10:
2) 在类方法中使用类变量 self.var
class test_global():
var = 10 #声明类变量
def get_var(self): #定义类方法,使用类变量
print self.var,
self.var += 1
if __name__ == '__main__' :
obj = test_global()
for i in range(5):
obj.get_var()
#Result: 10 11 12 13 14
python类定义全局变量_python之全局变量相关推荐
- python类定义变量_python类变量与__init__声明变量的区别
类变量:可在类的所有实例之间共享的变量 实例类对象:类的实例是调用类对象来创建的.如:par = Parent(),par就是类Parent的一个实例类对象. 实例变量(成员变量):同一个类对象可以创 ...
- python类属性初始化_Python类定义、属性、初始化和析构
类的定义,属性和方法概念 方法中self的作用和意义 初始化( __init__ ) 和 析构方法( __del__ ) 类的定义 class 类名 实例 实例名 = 类名() 一个"实例& ...
- python类和对象_Python类和对象
python类和对象 Python is an object-oriented programming language. Python Classes and Objects are the cor ...
- python类继承实例_Python实现类继承实例
Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,本文就举一例Python类继承的实例. 实例代码如下: #! /usr/bin/python # Filename: inherit ...
- PYTHON 类定义,属性,初始化
文章目录 PYTHON 类定义,属性,初始化 类定义 类的私有属性 类方法 类的初始化和析构 初始化 析构 PYTHON 类定义,属性,初始化 为了代码的编写方便简洁,引入了类的定义: 一般,使用 c ...
- python类定义的讲解_python类定义的讲解
Python中的类属性和对象属性的区别详解 类属性: class Employee(object): emCount=0 def __init__(self,name,salary): self.na ...
- python类的命名空间_Python之关于类变量的两种赋值区别详解
我就废话不多说了,还是直接看代码吧! # -*- coding:utf-8 -*- #面试题,写一个方法,将一行字符串中所有的单词数量统计出来 class Person(object): TAG = ...
- python 类-python类定义的讲解
一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性.如果直接使用类名修改其属性,那么将直接影响到已经实例 ...
- python中定义数据结构_Python中的数据结构—简介
python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...
- python类定义中__init__()_转:python学习——类中为什么要定义__init__()方法
学习Python的类,一直不太理解为什么一定要定义init()方法,现在简要谈一下自己的理解吧. 1.不用init()方法定义类 定义一个矩形的类,目的是求周长和面积. 1 classRectangl ...
最新文章
- 继续- 管理百人研发团队的烦恼(下)
- (原创)VS2017 C# 运行 Javasrcipt RSA 加密用户名登录 Java开发的服务器
- Pandas数据探索分析,分享两个神器!
- java使用jeids实现redis2.6的list操作(4)
- core identity mysql_Microsoft.AspNetCore.Identity 使用 mysql 报错处理
- SwipeRefreshLayout官方推荐下拉刷新
- 工业发展 安全护航 2021年工业互联网安全发展峰会成功召开
- mySQL 建表约束
- (三)数据结构与算法-队列
- 机器学习项目完整案例:预测区域的房价中位数
- 在Sublime Text 2下面开发Sass
- Linux中级之keepalived配置
- [我的阿里云服务器] —— 安装LAMP
- Pem私钥pkcs1和pkcs8之间互转
- ROS2系列知识【5】:从海龟教程开始【1】
- c++ 求四边形面积和周长_C++几何图形面积周长计算
- c语言 'max' : undeclared identifier,c语言中undeclared identifier是什么意思?
- Vi文本编辑器的使用方法
- python 例子 银行_Python3实现简单的银行账户登录系统实例
- 安装操作系统的方法?
热门文章
- 未能加载程序集或它的一个依赖项_英伟达发布kaolin:一个用于加速3D深度学习研究的PyTorch库...
- 全局统一返回结果包装信息
- C++ pthread
- 用c#输出正九九乘法表_用C#写九九乘法表
- 十大经典排序算法之选择排序及其优化
- Java实现图片转PDF
- LeetCode 18 四数之和
- Windows——Modern Standby(现代待机) S0改Suspend to RAM(待机到内存)S3睡眠解决方案(以机械革命F1 i5-11300H为例)
- Prefix Sum Primes
- android触摸事件透传,Android中父View穿透子View响应长按事件