在Python类中执行方法

0 投票
1 回答
1081 浏览
提问于 2025-04-18 07:20

我想在一个叫做 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 解释器中导入我的类,然后返回 self.tld_object 的值呢?

我导入的方式是:

from MyApp.MyClass import gather_path()

我知道这很基础——我对 Python 的面向对象编程还比较陌生。

那么我该怎么调用这个方法,才能在 gather_path() 方法中返回 self.tld_object 的值呢?

1 个回答

4

这要看你想做什么,但通常来说,导入你的类的代码看起来会是这样的:

from MyApp import MyClass

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

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

如果你不想创建 MyClass 的实例就调用 get_path(),你需要把 get_path() 定义成一个类方法或静态方法

从你的例子来看,不太清楚你是否需要设置 self.tld_object,因为你只是从 gather_path() 返回它,除非其他方法在后台依赖这个状态。不过如果确实需要的话,最好在 __init__ 中声明它,即使你把它设置为 None。或者,如果所有 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

撰写回答