在Python类中执行方法

时间:2014-05-22 19:06:39

标签: python methods

我正在尝试调用类MyClass中的方法并返回其值。

class MyClass:
    def __init__(self):
        print " Class Initialized"

    def gather_path(self):
        self.tld_object = Tld.objects.get(id=3,FKToClient=User.pk)
        return self.tld_object

如何通过在Python intrepreter中导入我的类来返回self.tld_object的值。

我正在导入:

from MyApp.MyClass import gather_path()

我知道,这是非常基础的 - 我对Python中的OOP相对较新。

如何调用此方法在self.tld_object方法中返回return gather_path()的值?

1 个答案:

答案 0 :(得分:4)

这取决于您尝试做什么,但通常情况下,我认为导入您的课程的代码如下所示:

from MyApp import MyClass

my_instance = MyClass()
value = my_instance.gather_path()

value变量现在将包含tld_object的值。

如果您不想实例化MyClass以致电get_path(),则需要get_path() class or static method

从你的例子中,你不清楚你需要设置self.tld_object,因为你只是从gather_path()返回它,除非其他方法依赖于引擎盖下的那个状态。但是,如果您是,那么最好在__init__中声明它,即使您将其设置为无。或者,如果MyClass的所有实例都将使用相同的tld_object值,则可以将其设置为类变量,并在任何方法之外声明它,如下所示:

class MyClass:
    tld_object = Tld.objects.get(id=3,FKToClient=User.pk)

    def gather_path(self):
        return self.tld_object

不确定其中有多少与您的需求相关,从给定的示例来看,这有点难以辨别。如果我写这篇文章(鉴于你到目前为止所说的话),我会做以下事情:

class MyClass:
    def __init__(self):
        self.tld_object = Tld.objects.get(id=3,FKToClient=User.pk)
        # Maybe raise an exception or something if self.tld_object doesn't get set right

    # Example of how to access tld_object from another method
    def print_tld_object(self):
        print self.tld_object

如果你需要从课外到达tld_object,你可以在另一个模块中执行以下操作:

from MyApp import MyClass

my_instance = MyClass()
tld = my_instance.tld_object