非标准类型如何,例如我会转换类型从一些外部类到另一个?我搜索了周围,并得到像“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. 与蟒蛇
你能给出你正在尝试做一个例子吗? –