如題,多次實例化了一個類之后,如何通過保存的實例的名稱字符串str獲得類的屬性、方法。
直接使用字符串str調(diào)用會報錯,Traceback如下:
那么怎么通過str獲得這個類的屬性和方法呢?
類的部分定義
conceptioins用于存放實例化過的類的名稱
conceptionclass用于存放其地址:
但是直接使用字符串和使用地址這兩種方式都不能獲得str所對應的類的屬性、方法
運行后便得到前面所示的Traceback
查資料之后有一個帖子里說利用字典可以儲存任意類型的鍵值對的特性可以保存實例化對象的正確類型,使其對于程序來說有意義。但是也失敗了,我試著打印了鍵值對的value值,發(fā)現(xiàn)其存儲的就是類的實例化對象所存儲的物理地址...然后我就很崩潰了...不知道這類問題應該怎么處理
在看了大家的回答之后我又去百度了一下,基本和@zhangliganggm說的一樣。
嗯。。是我自己歸納的太羅嗦了 這個問題歸納出來應該是在Python中怎么使用動態(tài)變量。
使用locals和globals兩個函數(shù)就可以了,這兩個Python自帶的函數(shù)已經(jīng)替我們完成了使用字典來完成動態(tài)變量的工作,所以@勤奮的懶人所說的也沒錯,肯定是我之前嘗試的時候出了錯。。
class A():
def __init__(self,name):
self.name = name
self.info = "我是" + self.name + "號實例。"
def output_info(self):
print(self.info)
names = locals()
nums = list(range(5))
for num in nums:
name = input("給實例取個名字:")
names['x%s'%num] = A(name)
# ~ name = input("給變量取個名字:")
# ~ names['x%s'%num] = num**num
for num in nums:
names['x%s'%num].output_info()
完美
class A():
def __init__(self,name):
self.name = name
self.info = "我是" + self.name + "號實例。"
def output_info(self):
print(self.info)
names = locals()
test = {}
nums = list(range(5))
for num in nums:
name = input("給實例取個名字:")
names['x%s'%num] = A(name)
test['x%s'%num] = A(name)
# ~ name = input("給變量取個名字:")
# ~ names['x%s'%num] = num**num
for num in nums:
names['x%s'%num].output_info()
test['x%s'%num].output_info()
1.使用任意字典即可完成動態(tài)變量的賦值和命名工作
2.我是個天才(霧
3.天才也有犯蠢的時候
最后把我查到的資料也貼出來吧,說不定能幫到和我遇到一樣問題的coder
傳送門:Python兩個內(nèi)置函數(shù)——locals 和globals (學習筆記)
Python中使用動態(tài)變量名的方法(這個比較重要)
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。