我正在研究python中的模塊用法,我想我會回答Markus在上述註釋中提出的問題(「如何在嵌入模塊時導入變量?「)從兩個角度:
- 變量/功能,
- 類屬性/方法
這裏是我會怎樣改寫主程序f1.py證明可變回用馬庫斯:
import f2
myStorage = f2.useMyVars(0) # initialze class and properties
for i in range(0,10):
print "Hello, "
f2.print_world()
myStorage.setMyVar(i)
f2.inc_gMyVar()
print "Display class property myVar:", myStorage.getMyVar()
print "Display global variable gMyVar:", f2.get_gMyVar()
這是我怎麼會重寫可重複使用的模塊f2.py:
# Module: f2.py
# Example 1: functions to store and retrieve global variables
gMyVar = 0
def print_world():
print "World!"
def get_gMyVar():
return gMyVar # no need for global statement
def inc_gMyVar():
global gMyVar
gMyVar += 1
# Example 2: class methods to store and retrieve properties
class useMyVars(object):
def __init__(self, myVar):
self.myVar = myVar
def getMyVar(self):
return self.myVar
def setMyVar(self, myVar):
self.myVar = myVar
def print_helloWorld(self):
print "Hello, World!"
當f1.py這裏執行的是輸出會是什麼樣子:
%run "f1.py"
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Display class property myVar: 9
Display global variable gMyVar: 10
我覺得點馬庫斯是:
- 要重用一個模塊的代碼不止一次,把你的模塊的代碼到 函數或類,
- 要重新使用存儲在模塊的屬性變量,在類中初始化 性能,並添加「getter」和「二傳手」的方法,使不需要將3210個變量複製到主程序中,
- 要重新使用存儲在模塊中的變量,請初始化變量並使用 getter和setter函數。 setter函數將聲明 變量爲全局變量。
是的,你可以在不同的模塊中分割你的文件並導入你需要的東西。 http://docs.python.org/tutorial/modules.html – Borgleader
閱讀你最喜歡的Python教程,並瞭解模塊 –