如何在不使用 class 名称的情况下从静态方法调用静态方法
how can i call static method from static method without using class name
代码示例:
我如何 运行 此代码而不使用 'A'
class A:
@staticmethod
def a():
print('a')
@staticmethod
def b():
print('b')
print(**A**.a())
A.a()
如果您使用装饰器 @class 方法,参数 cls 将传递给函数,该函数可以引用 class 名称而无需显式编码 class 名称,假设您想从同一个 class 的另一个静态方法调用此函数。如果用例推迟,请这样说,因为这可能只是一个合适的选择,因为您想从相同 Class.
的静态方法调用它
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.
我认为唯一的方法可能是创建一个包,所以一个文件夹(例如 src)包含一个甚至空的 _init_.py 文件,一个 A.py 文件包含您的 class 和文件夹上方的 main.py 文件包含行
from src.A import *
那你可以打电话
a()
没有 class 名字
你可以用__class__
引用class。
试试这个:
class A:
@staticmethod
def a():
print('a')
@staticmethod
def b():
print('b')
__class__.a() # notice here we're not using `A`
A.b()
代码示例: 我如何 运行 此代码而不使用 'A'
class A:
@staticmethod
def a():
print('a')
@staticmethod
def b():
print('b')
print(**A**.a())
A.a()
如果您使用装饰器 @class 方法,参数 cls 将传递给函数,该函数可以引用 class 名称而无需显式编码 class 名称,假设您想从同一个 class 的另一个静态方法调用此函数。如果用例推迟,请这样说,因为这可能只是一个合适的选择,因为您想从相同 Class.
的静态方法调用它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.
我认为唯一的方法可能是创建一个包,所以一个文件夹(例如 src)包含一个甚至空的 _init_.py 文件,一个 A.py 文件包含您的 class 和文件夹上方的 main.py 文件包含行
from src.A import *
那你可以打电话
a()
没有 class 名字
你可以用__class__
引用class。
试试这个:
class A:
@staticmethod
def a():
print('a')
@staticmethod
def b():
print('b')
__class__.a() # notice here we're not using `A`
A.b()