2011-01-06 123 views
2

當我使用mimetypes模塊時,我真的很在意add_type一串'缺失'mimetypes,有沒有辦法可以做到以下幾點?擴展模塊

# This file is named mimetypes.py 
from mimetypes import * 
add_type('application/x-rar-compressed', 'rar', False) 
add_type('video/mp4', 'mp4', False) 
add_type('video/x-ms-wmv', 'wmv', False) 
add_type('video/x-flv', 'flv', False) 

這裏的問題是,它嘗試導入本身,而不是「真實」 mimetypes模塊。

我知道這是unpythonic和不好的做法,但我不認爲它會真的打破任何東西。

回答

6

不要打電話給你的模塊mimetypes

就是這樣。稱它爲別的東西,它就可以工作。也許extra_mimetypes什麼的。然後你的軟件只需要import extra_mimetypes,你的父親找到一個叫做Bob的兄弟。

與它唯一unpythonic東西是from mimetypes import *。將其更改爲from mimetypes import add_type。這是因爲你根本不需要擴展mimetypes。 add_type()調用將您的新類型添加到mimetypes註冊表中,不需要擴展名。

而且通常情況下,您不需要擴展任何模塊。如果您想添加模塊中不存在的額外功能,可以在第二個模塊中使用這些額外功能。擴展像你想要做的模塊幾乎是不必要的。