我在matplotlib工具箱(mpl_toolkits.basemap.Basemap
)中使用basemap
模塊中的Basemap
對象。在basemap
的__init__.py
文件(即,mpl_toolkits.basemap.__init__
模塊)中,定義了在地圖上繪製緯度的方法drawparallels
。我的目標是複製該方法,以製作一種名爲drawmlat
的新方法,對其進行一些調整以繪製磁緯度而不是地理緯度。如何在不編輯原始模塊的情況下向第三方Python模塊的類添加方法
理想情況下,我希望新drawmlat
等同於原來的drawparallel
(綁定底圖,我可以使用BasemapInstance.drawmlats()
調用實例的方法),我不希望修改原始文件。我怎麼做到這一點?
我已經嘗試了「處方」 MyObj.method = MethodType(new_method, None, MyObj)
的變化,但沒有原始源文件中放置任何,新方法不具有訪問來自底圖模塊全局等(在其__init__.py
例如定義)。
如果看起來我誤解了某些東西,我可能已經 - 我對於面向對象編程或多或少都是全新的。
[將方法添加到現有對象]可能的重複 –