So I have a function (let's call it fun1
) that accepts a function as a parameter. But inside fun1
, I need to access the parameter's __self__
, which exists only if the function is a bound method.
The function itself must accept two str
args and return a bool
.
In other words, like this:
MyFuncType = Callable[[str, str], bool]
# fun1 is an unbound function
def fun1(func: MyFuncType):
...
o = func.__self__
...
# Some logic on the "o" object, such as logging the object's class,
# doing some inspection, etc.
...
If I use MyFuncType
like the above, PyCharm will complain that __self__
is not an attribute of func
.
So, what type hint should I annotate func
with, so that PyCharm (and possibly mypy) won't protest on that line?
(I'm using Python 3.6 by the way)