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

9 lines
312 B
Python
Raw Permalink Normal View History

2013-04-10 23:57:08 -07:00
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