在下面的代碼中,OP創建了一個繼承了Template類class BatchRename(Template):
的類,並且在代碼的底部,他將該類實例化爲t = BatchRename(fmt)
,儘管沒有構造方法(def __init__():
) 。正如我理解Python中的繼承一樣,這段代碼可能有些問題,但是我對Python很陌生,所以我可能會錯過一些東西。任何人都可以解釋我嗎?實例化一個沒有構造函數和繼承的Python類
小代碼解釋:該OP顯示瞭如何在模板中使用自定義分隔符,並且他正在對示例中的某些文件進行批量重命名。他正在創建一個繼承自Template的自定義類,以更改delimeter
名稱(字段,屬性,屬性)並同時使用內部功能。
>>> import time, os.path
>>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg']
>>> class BatchRename(Template):
... delimiter = '%'
>>> fmt = raw_input('Enter rename style (%d-date %n-seqnum %f-format): ')
Enter rename style (%d-date %n-seqnum %f-format): Ashley_%n%f
>>> t = BatchRename(fmt)
>>> date = time.strftime('%d%b%y')
>>> for i, filename in enumerate(photofiles):
... base, ext = os.path.splitext(filename)
... newname = t.substitute(d=date, n=i, f=ext)
... print '{0} --> {1}'.format(filename, newname)
img_1074.jpg --> Ashley_0.jpg
img_1076.jpg --> Ashley_1.jpg
img_1077.jpg --> Ashley_2.jpg
我把這個代碼:http://docs.python.org/tutorial/stdlib2.html#templating
您的意思是3.0版的說新風格? – Tarik
@Braveyard:不,我的意思是Python 2.3(IIRC)以來實現的新類,即從'object'派生的類。 –