前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 再谈变量作用域与变量引用

Python 再谈变量作用域与变量引用

作者头像
授客
发布2019-09-11 14:38:16
9100
发布2019-09-11 14:38:16
举报
文章被收录于专栏:授客的专栏授客的专栏

module3.py

#!/usr/bin/env python

# -*- coding:utf-8 -*-

__author__ = 'shouke'

var = 'var_in_module3'

module2.py

#!/usr/bin/env python

# -*- coding:utf-8 -*-

__author__ = 'shouke'

from module3 import var

class ClassOne:

var = 'global var in ClassOne' # 类中的全局变量

def func(self):

print('var in func for ClassOne: %s' % var) # 引用module3.var

ClassOne.var = 'var whose value changed in func of ClassOne'

module1.py

#!/usr/bin/env python

# -*- coding:utf-8 -*-

__author__ = 'shouke'

from module3 import var

from module2 import ClassOne

def function():

print('var in function: %s' % var) # 引用module3.var

var1 = 'value_for_var1'

if True:

print('var1 in if: %s' % var1)

var1 = 'value_changed_for_var1'

print('var1 in if: %s' % var1)

print('var1 out of if: %s' % var1)

print('\nbegan for loop \n')

for num in range(1, 2):

var1 = 'var1_in_for_loop'

if True:

print('var1 in if for loop: %s' % var1)

var1 = 'value_changed for var1 in if for_loop'

print('var1 in if for loop: %s' % var1)

print('var1 out of if for loop: %s' % var1)

print('var1 out of for loop: %s' % var1)

class ClassTwo:

def func(self):

var = ClassOne.var # 引用值

print('var in func of ClassTwo: %s' % var)

def func2(self):

ClassOne.var = 'value changed in ClassTwo' # 修改值

if __name__ == '__main__':

function()

print('\n')

obj1 = ClassTwo()

obj1.func()

obj2 = ClassOne()

obj2.func()

print('\n')

obj2.func()

obj1.func()

print('\n')

obj1.func2()

obj2.func2()

输出:

Python <wbr>再谈变量作用域与变量引用
Python <wbr>再谈变量作用域与变量引用

说明:

1、如何在不同模块中引用同一个变量?

答案:在一个模块中定义一个全局变量并赋值,然后在其它模块中通过导入定义的变量,在适当的位置引用该变量,如上例中,在module3中定义一个变量,然后通过语句 from module3 import var 导入变量

2、如何在类中定义一个全局变量?

答案:

class ClassName:

var_name = xxxxxxxx

在其它模块中,通过导入该类,然后通过ClassName.var_name方式引用变量,或者给变量赋值。

3、try……except,if,for,while子句中的变量作用域与赋值

举例说明

Python <wbr>再谈变量作用域与变量引用
Python <wbr>再谈变量作用域与变量引用
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-05-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • module3.py
  • module2.py
  • module1.py
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档