2014-04-26 41 views
0

我需要命名類某些事情,例如:你可以使用Python中的類的字符串格式嗎?

for a in range(10): 
    class Class#"%s"(object): % (num) 
     '''Class Content''' 
    num += 1 

我的問題,這是可能的,如果不是,有什麼替代方案。

+0

事實上,你發現自己需要這樣做,這表明你的方法可以改進。什麼是更大的圖片;你爲什麼要這樣做,你想達到什麼目的? – jonrsharpe

+0

嗨,歡迎來到堆棧溢出 - 沒有必要添加解決你的問題。通過點擊您已經向更廣泛的社區表明您已獲得所需答案的複選標記。謝謝! – Ben

+0

@Ben,對不起,我只是習慣於使用Ubuntu論壇,我的不好。 :) – FrigidDev

回答

2

你可以使用元類(用於創建類的東西)。例如:

>>> type('ClassName',(), {}) 
<class '__main__.ClassName'> 

第二個參數是基類的元組,第三個參數是含有attribute name詞典 - >attribute value對:

>>> cls = type('ClassName', (object,), {'varname': 'var'}) 
>>> cls.varname 
'var' 

documentation on type function

有三個參數,返回一個新的類型對象。這實質上是類聲明的一種動態形式。名稱字符串是類名稱,併成爲__name__屬性;基元組逐項列出基類併成爲__bases__屬性;而字典字典是包含類體的定義的命名空間,併成爲 __dict__屬性。


另外閱讀this awesome answer瞭解更多詳情。

+0

好的,會做的,謝謝。 – FrigidDev

+0

因此,從我讀過的內容中,我需要將名稱,類型(如對象)和不同的屬性放在字典中,如下所示:{「self.var:var}。 – FrigidDev

+0

@ user3575366已更新 – vaultah

相關問題