【问题标题】:How can I call a method which is in another class under another file in python?如何在 python 的另一个文件下调用另一个类中的方法?
【发布时间】:2018-12-31 20:53:01
【问题描述】:

如何从我的 python 文件中调用同一包下另一个文件的另一个类中的方法?

【问题讨论】:

  • 请发布您的代码和您的包结构。
  • 如果在同一个目录下,直接导入即可。
  • 在模块(文件)a,导入另一个模块(文件)b:import b。然后在模块a 中创建类c 的对象o,该对象在模块b 中定义:o = b.c()。然后在对象o:o.m()中调用方法m。请记住,名称为 a 的模块位于名称为 a.py 的文件中。

标签: python


【解决方案1】:

您首先需要将文件(取决于您的目录结构)导入当前脚本,创建该类的实例,然后在该类中调用该方法;

#Import your other file
import other_file

#Create an instance of the object where your method is
my_obj = NewClass()

#Call the method directly
my_obj.some_method()

您也可以尝试在方法中添加@staticmethod 以使其可直接调用:

class NewClass:

    @staticmethod
    def some_method():
        print 'Hello'

#call staticmethod add directly 
#without declaring instance and accessing class variables
NewClass.some_method()

【讨论】:

  • 来回例如:如果我在 self 的帮助下调用该方法,例如在我的主类中我的方法(my_method)中的 self.my_obj.some_method() 它会说“my_method”对象没有属性“我的_obj”
  • 我不明白你的意思,对不起。但是,您不会使用 self 调用类中的任何方法,对方法的所有调用都采用 object.method() 的格式
  • 否则,如果我在不使用 self 的情况下调用它,我会通过 my_obj.some_method() 调用它,它显示“必须使用 NewClass 实例作为第一个参数调用错误未绑定方法 some_method()”
  • 您使用的是 Python 2.7 吗?此外,我们确实需要查看一些代码,否则可能会出现很多问题,包括用户错误。
  • 感谢您的帮助,但是通过cmets了解,我试图通过上面的示例本身向您解释错误,非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-05
  • 2013-05-17
  • 1970-01-01
  • 2017-07-16
相关资源
最近更新 更多