例如,如何将类型从某个外部类转换为另一个类?我已经四处寻找,并获得了诸如“int to string”之类的东西,但我正在谈论类似“tile”转换为其他内容的东西,例如“tile2”。
答案 0 :(得分:3)
在Python中没有投射这样的东西。这是因为没有必要:通常,任何接受'tile'对象的函数都不应该关心它实际上 是tile
而不是tile2
,因为只要它具有预期的数据和/或方法。这称为duck typing,是动态类型语言(如Python)编程的基本部分。
当然,可以将转换从一个类转换为另一个类,但是没有通用的方法。您的tile
/ tile2
类必须自己实现,可能是通过复制数据元素。
答案 1 :(得分:1)
正如丹尼尔在他的回答中所提到的,在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'
它能回答你的问题吗?