非標準類型如何,例如我會轉換類型從一些外部類到另一個?我搜索了周圍,並得到像「int到字符串」和東西的東西,但我正在談論像類「瓦」轉換爲其他東西,如「瓦2」的東西。型鑄造與蟒蛇
型鑄造與蟒蛇
回答
正如Daniel在他的回答中所提到的,由於Python的代碼通常是(應該)寫入的,所以在Python中不需要進行轉換。然而,您可能需要的是在非標準類型之間轉換。
轉換應該可能在你想要轉換的類內的__init__
方法內支持,如果你想以這種方式轉換爲例如。 int
,str
,list
等:
class Tile:
def __init__(self, val):
# here paste the code making Tile object out of other objects,
# possibly checking their types in the process
pass
,然後你應該能夠投它像(調整__init__
您的需求後):
spam = Tile(ham)
更全面例如對於類型之間轉換:
>>> class AmericanTile:
def __init__(self, val=None):
if isinstance(val, str):
self.color = val
elif isinstance(val, BritishTile):
self.color = val.colour
>>> class BritishTile:
def __init__(self, val=None):
if isinstance(val, str):
self.colour = val
elif isinstance(val, AmericanTile):
self.colour = val.color
>>> a = AmericanTile('yellow')
>>> a.color
'yellow'
>>> b = BritishTile(a)
>>> b.colour
'yellow'
它回答你的問題嗎?
是的,這足夠有道理!謝謝。 – SuperDisk
有沒有這樣的事情在Python鑄造。這是因爲沒有必要爲它:通常,接受一個「瓦」對象的函數不應該關心它實際上是一個tile
而非tile2
,只要它具有數據和/或方法,它是期待。這被稱爲duck typing,並且是像Python這樣的動態類型語言編程的基礎部分。
當然,有可能從轉換從一個類到另一個類,但沒有通用的方式來做到這一點。你tile
/tile2
類必須實現這個自己,可能是通過複製過來的數據元素。
+1 - 在鴨子打字的背景下鑄造並沒有什麼意義。 –
- 1. 蟒蛇條件式鑄造
- 2. 字符串/ Int的類型鑄造日期蟒蛇
- 3. 型鑄造蟒INT長在scipy.weave.inline
- 4. 鑄造基地型與Java
- 5. 蟒蛇隱式鑄造字符串到日期時間對象
- 6. 鑄造泛型
- 7. 鑄造類型
- 8. 鑄造泛型
- 9. 泛型鑄造
- 10. 在Java中的類型鑄造/鑄造
- 11. 與鑄造
- 12. 與蟒蛇
- 13. Pyevolve與蟒蛇
- 14. batch.models.PoolAddParameter與蟒蛇
- 15. 與蟒蛇
- 16. 與LXML蟒蛇
- 17. 與蟒蛇
- 18. 與蟒蛇
- 19. 與蟒蛇
- 20. 與蟒蛇
- 21. 與蟒蛇
- 22. 與蟒蛇
- 23. 與蟒蛇
- 24. 與蟒蛇
- 25. Cx_oracle:TO_DATE與蟒蛇
- 26. 與蟒蛇
- 27. 與蟒蛇
- 28. 與蟒蛇
- 29. 與蟒蛇
- 30. 與蟒蛇
你能給出你正在嘗試做一個例子嗎? –