我在訪問類實例時遇到了一些問題。我從一個過程調用類,實例的名稱是在一些變量中定義的。我想要創建實例名稱的值,然後想要訪問它,但是當我訪問它是給錯誤。有人可以幫助解決這個問題。訪問python中的類對象時出錯
class myclass:
def __init__(self,object):
self.name = object
def mydef():
global a1
b = "a1"
b = myclass(b)
mydef()
print a1.name
問題二: 在我實際的劇本,我必須從這個函數(約100),創造了大量這樣的實例。因此,將其名稱定義爲全局名稱會很痛苦,有沒有辦法在函數外部訪問這些實例,而無需將它們聲明爲全局的。
修改:
class myclass:
def __init__(self,object,typename):
self.name = object
self.typeid = typename
def mydef():
file_han = open(file,"r")
while True:
line = file_han.readline()
if not line:
break
start = line.find('"')
end = line.find('"',start+1)
string_f = line[start+1:end]
myclass(string_f,'a11')
mydef(file)
print def.name
print def.typeid
File Contents are :
a11 "def"
a11 "ghi"
a11 "eff"
你需要修復您的壓痕;例如,它在* mydef()'應該聲明的級別上*不清楚。有關格式化的幫助,請參見[如何格式化我的代碼塊?](http://meta.stackexchange.com/q/22186) – 2012-08-02 10:33:54
mydef和類聲明處於同一級別。 – sarbjit 2012-08-02 10:38:44
我把這個問題推回去了。在接受的答案中有一些缺失的上下文(沒有看到你使用'globals'保存修訂歷史的地方)。 – Makoto 2012-08-02 13:02:36