我正在尝试调用类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()
的值?
答案 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