RosettaCodeData/Task/Polymorphic-copy/Python/polymorphic-copy-3.py

9 lines
312 B
Python

target = source.__class__() # Create an object of the same type
if hasattr(source, 'items') and callable(source.items):
for key,value in source.items:
target[key] = value
elif hasattr(source, '__len__'):
target = source[:]
else: # Following is not recommended. (see below).
target = source