У меня есть функция, которая принимает в качестве параметра экземпляр класса или объект класса.В зависимости от того, получил он экземпляр или только сам класс, он должен выполнять разные задачи.Моя идея была такой:
def foo(self, object):
try:
object = object()
from_object = True
except TypeError:
if isinstance(object, BaseObject):
#object is already an instance
from_object = False
else:
raise TypeError("Not a correct object / instance")
...do stuff
, но когда я запускаю этот код, например, с строкой в качестве экземпляра объекта, я все равно получаю
TypeError: 'str' object is not callable
Так что предложение try кроме не перехватывает его,Любые идеи?
Редактировать:
Это был просто MME, мой метод -
def convert(self, newunit):
"""Converts a instance of a given unit to a new
unit. Returns a new instance of the converted unit"""
try:
newunit = newunit()
from_baseunit = True
except TypeError:
if isinstance(newunit, BaseUnit):
from_baseunit = False
else:
raise
, а полный возврат -
Traceback (most recent call last):
File "./test.py", line 9, in <module>
print(A.convert('str'))
File "/home/thomas/Projects/Python/Modules/datacont/baseunits.py", line 307, in convert
newunit = newunit()
TypeError: 'str' object is not callable