天天看點

Python 再談變量作用域與變量引用

再談變量作用域與變量引用

by:授客 QQ:1033553122

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 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 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()

obj1.func()

print('\n')

obj1.func2()

obj2.func2()

輸出:

Python 再談變量作用域與變量引用
Python 再談變量作用域與變量引用

說明:

1、如何在不同子產品中引用同一個變量?

答案:在一個子產品中定義一個全局變量并指派,然後在其它子產品中通過導入定義的變量,在适當的位置引用該變量,如上例中,在module3中定義一個變量,然後通過語句 from module3 import var 導入變量

2、如何在類中定義一個全局變量?

答案:

class ClassName:

var_name = xxxxxxxx

在其它子產品中,通過導入該類,然後通過ClassName.var_name方式引用變量,或者給變量指派。

3、try……except,if,for,while子句中的變量作用域與指派

舉例說明

Python 再談變量作用域與變量引用
Python 再談變量作用域與變量引用

作者:授客

QQ:1033553122

全國軟體測試QQ交流群:7156436

Git位址:https://gitee.com/ishouke

友情提示:限于時間倉促,文中可能存在錯誤,歡迎指正、評論!

作者五行缺錢,如果覺得文章對您有幫助,請掃描下邊的二維碼打賞作者,金額随意,您的支援将是我繼續創作的源動力,打賞後如有任何疑問,請聯系我!!!

           微信打賞                       

支付寶打賞                  全國軟體測試交流QQ群  

Python 再談變量作用域與變量引用
Python 再談變量作用域與變量引用
Python 再談變量作用域與變量引用