导入类的静态方法而不导入整个类

时间:2018-01-09 23:11:45

标签: python python-3.x

我想在类中导入一些函数而无需导入整个类。

我有一些课程如下

MyClassFile.py

class MyClass:
        def __init__(self):
            pass #Some init stuff

        def some_funcs(self):
            pass #Some other  funcs

        @staticmethod
        def desired_func():
            pass #The func i want to import

MyScript.py

from MyClassFile import MyClass.desired_func

from MyClassFile.MyClass import desired_func

我尝试导入这种方式但是没有用,有什么方法可以做到吗?

1 个答案:

答案 0 :(得分:4)

扮演魔鬼的拥护者:

# MyScript.py
desired_func = __import__('MyClassFile').MyClass.desired_func

更严重的是,听起来你的staticmethod实际上只是一个模块级功能。 Python is not Java

如果您坚持使用静态方法,请选择以下选项之一:

  1. 照常导入该类,然后绑定本地函数:f = MyClass.desired_func
  2. MyClassFile.py中,在类定义块之后,将模块级函数别名为staticmethod,然后直接导入该名称。