代码示例: 我如何在不使用“A”的情况下运行此代码
class A:
@staticmethod
def a():
print('a')
@staticmethod
def b():
print('b')
print(**A**.a())
A.a()
您可以通过
__class__
参考课程。
试试这个:
class A:
@staticmethod
def a():
print('a')
@staticmethod
def b():
print('b')
__class__.a() # notice here we're not using `A`
A.b()
我认为唯一的方法可能是创建一个包,一个包含一个甚至空的 _init_.py 文件的文件夹(例如 src),一个包含你的类的 A.py 文件,以及在该文件夹上方的 main.c 文件。包含该行的 py 文件
from src.A import *
然后你可以打电话
a()
没有班级名称
如果您使用装饰器 @classmethod ,则参数 cls 会传递给函数,该函数可以引用类名,而无需显式编码类名,假设您想从同一类的另一个静态方法调用此函数。如果用例推迟,请这么说,因为这可能只是一个合适的选择,因为您想从同一类的静态方法调用它。
class A:
@classmethod
def a(cls, args...):
pass
@classmethod
def b(cls, args...):
cls.a()
A.b() # notice that you dont need an instance of the class to call a class method only the class.