This is annoying:
class MyClass:
@staticmethod
def foo():
print "hi"
@staticmethod
def bar():
MyClass.foo()
Is there a way to make this work without naming MyClass in the call? i.e. so I can just say foo()
on the last line?
There is no way to use foo
and get what you want. There is no implicit class scope, so foo
is either a local or a global, neither of which you want.
You might find classmethods more useful:
class MyClass:
@classmethod
def foo(cls):
print "hi"
@classmethod
def bar(cls):
cls.foo()
This way, at least you don't have to repeat the name of the class.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With