我有一個期望包含XML文件的流的類。
我不一定需要一個文件流,我可能想使用其他來源,如數據庫,套接字等。
我需要從io module繼承哪些類以便從其他來源提供流接口?在Python中創建流類
4
A
回答
4
在這種情況下,動態類型允許您不從任何基類中繼承類。你應該使用專有名稱來實現一些方法。 Blog post on the subject
+0
我不明白爲什麼我不應該上課。無論如何,我的界面應該是流的界面。 – 2011-04-06 07:57:36
+0
我只寫過你不能使用繼承機制進行子類化,並可能創建你的類並實現具有所需簽名的方法是必要和充分的 – Andrey 2011-04-06 15:41:36
0
安德烈給出的答案並不完全正確。
在Python中,流是「類文件」對象。您可以使用io模塊中定義的工具讀取/寫入它們。如果你想定義一個流對象,該模塊還提供了你應該實現的接口。
請注意,io
模塊區分三種不同類型的流,它們需要稍微不同的接口。 (他們在數據類型方面不同居多。)
- 文本I/O - 接口TextIOBase
- 二進制I/O - 接口BufferedIOBase
- 原始I/O - 接口RawIOBase
例如,StringIO是TextIOBase的內存中實現。
請注意,這些接口在Python 2和3上均可用。
相關問題
- 1. 在python中創建子流
- 2. 創建一類流
- 3. 在Python中爲Tkinter標籤創建類
- 4. 在Python中創建一個點類
- 5. 在python中創建汽車類
- 6. 如何在python中創建類方法?
- 7. 在Python中創建等效的類?
- 8. 在Python中創建一個Dog類
- 9. 在類[python]中創建動態數組
- 10. 在python中創建一個新類型
- 11. 在Python中解析/創建類型
- 12. Python在循環中創建類實例
- 13. 是否在Python中創建類「對象」
- 14. 在python中動態創建類和__repr__
- 15. 在python中創建一個類 - 錯誤
- 16. 在Python中創建
- 17. 在Python中使用類型類創建一個類型類
- 18. Python類:在基類的方法中創建變量子類
- 19. python創建子流程(新手)
- 20. 使用python和mayavi創建3D流圖
- 21. 在Python中的類中創建一個類的靜態實例
- 22. 創建python子類問題
- 23. Python線程 - 創建子類?
- 24. 動態創建類 - Python
- 25. Python類和對象創建
- 26. 創建一組Python類
- 27. 如何在Python中通過IPv6創建組播流套接字?
- 28. 在Python中重新創建流行的擠壓勢頭指標
- 29. 使用Python在LibreOffice中創建流程圖
- 30. 如何創建適合在Python中分發的工作流程
套接字已經具有與另一個文件相同的接口。數據庫連接通常提供一個「blob」,可以使用「StringIO」將其轉換爲文件行對象。爲什麼當你的「流」接口(即Python的''file')已經存在時,你會繼承某些東西?什麼是獨特的或不同的? – 2011-04-05 21:18:42
爲什麼導出? Python不是C++。你確定只傳遞一個具有正確'read()'方法的東西是不夠的嗎? – 6502 2011-04-05 21:34:11
@ 6502:可以將XML文件從數據庫加載到流中。我只是封裝行爲。 – 2011-04-06 07:04:29