这是代码,它只是一个简单的示例:
class func(object):
def cacul(self, a, b):
return a+b
def run_cacul(self, a, b):
return self.cacul(a, b)
我试图通过在命令行中导入该模块来调用类方法run_cacul()
。模块名称为“ foo.py”
import foo
foo.func().run_cacul(2,3)
太长了!!我不想写类名,就像python的系统模块random.py
一样,它省略了类名Random()
import random
random.randint(12,23)
代码可能有误,但是我只想知道方法。有什么办法可以做到这一点?
答案 0 :(得分:0)
如果您已在类内部定义了方法,则无需创建对象或引用类,就无法调用该方法。
对于随机示例randint
是函数引用
_inst = Random()
randint = _inst.randint
创建Random的对象,并将randint
函数引用存储在randint
中。
https://github.com/python/cpython/blob/master/Lib/random.py#L775
对象创建对客户端(我们)是隐藏的。
沿着相似的行,您可以执行以下操作: foo.py
class func(object):
def cacul(self, a, b):
return a+b
def run_cacul(self, a, b):
return self.cacul(a, b)
obj = func()
run_cacul = obj.run_cacul
那你就可以喜欢
from foo import ran_cacul
ran_cacul(4,5)