Python3中类内的名称空间

2024-06-15 07:58:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,我想知道是否有任何方法可以将方法聚合到“子空间”。我的意思是类似这样的语法:

smth = Something()
smth.subspace.do_smth()
smth.another_subspace.do_smth_else()

我正在编写一个API包装器,我将有很多非常相似的方法(只有不同的URI),所以我认为最好将它们放在几个引用API请求类别的子空间中。换句话说,我想在类中创建名称空间。我不知道这在Python中是否可行,我知道在Google中应该查找什么。在

我会很感激你的帮助。在


Tags: 方法名称apigoogle语法another空间uri
1条回答
网友
1楼 · 发布于 2024-06-15 07:58:43

一种方法是将subspaceanother_subspace定义为属性,分别返回分别提供do_smth和{}的对象:

class Something:
    @property
    def subspace(self):
        class SubSpaceClass:
            def do_smth(other_self):
                print('do_smth')
        return SubSpaceClass()

    @property
    def another_subspace(self):
        class AnotherSubSpaceClass:
            def do_smth_else(other_self):
                print('do_smth_else')
        return AnotherSubSpaceClass()

你想要什么就做什么:

^{pr2}$

根据您打算将这些方法用于什么目的,您可能希望将SubSpaceClass作为一个单例,但我怀疑性能提升是否值得。在

相关问题 更多 >