Function Annotations: PEP-3107
Background: I am PyCharm user w/CPython 3.4x on Linux. I find it helps to annotate function parameters and return types. The IDE can better hint when I use these methods.
Question: For self-chaining methods, how can I annotate the method return value? If I use the class name, Python throws an exception at compile time: NameError: name 'X' is not defined
Sample code:
class X:
def yaya(self, x: int):
# Do stuff here
pass
def chained_yaya(self, x: int) -> X:
# Do stuff here
return self
As a trick, if I put X = None
just before the class declaration, it works. However, I don't know if there are unforseen, negative side effects from this technique.
As of Python 3.11, you will be able to use
Self
to annotate the return type:PEP 673