Как сказал Даниэль в своем ответе, приведение не обязательно в Python из-за того, как обычно пишется код для Python.Однако вам может понадобиться преобразование между нестандартными типами .
. Преобразование, вероятно, должно поддерживаться в методе __init__
в классе, в который вы хотите его преобразовать, если хотитесделать так, как работает конвертация, например.int
, str
, list
и т. Д.: * 10101 *
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'
Отвечает ли он на ваш вопрос?