2010-01-06 210 views
-1
def a(): 
    w='www' 
a.a='aaa' 
print a.__dict__ 
a.__dict__={'1':'111','2':'222'} 
print a.1#error 
print a['1']#error 

我怎樣才能獲得值「111」 感謝我怎樣才能獲得值「111」

+11

爲什麼要這樣對自己? – 2010-01-06 07:55:08

+0

請參閱django.utils.functional.py – zjm1126 2010-01-06 08:22:05

+3

請不要這樣做。 '__dict__'不是它看起來的東西,也不能保證爲任何對象定義(例如,檢查:http://docs.python.org/reference/datamodel.html#slots)。只需使用setattr。請。哦,'1'不是Python中的有效標識符。 – shylent 2010-01-06 09:17:40

回答

9

你必須做

print a.__dict__['1'] 

print getattr(a, '1') 

「1」 是不是在Python有效的變量名。如果你這樣做:

a.__dict__ = {'a1' : '111'} 
print a.a1 

它會工作。

+4

雖然我不會推薦用'__dict__'來搞亂。 :) – Sapph 2010-01-06 08:01:46

1

您可以訪問它歸功於__dict__成員。請參見下面的代碼

def a(): 
    w='www' 
a.a='aaa' 
print a.__dict__ 
a.__dict__={'1':'111','2':'222'} 
print a.__dict__['1'] 
3

既然你說只是一個初學者,也許你只是在尋找更簡單:

a = {'1':'111','2':'222'} 

所以a['1']返回想要'111'