我试图通过在另一个类中嵌套一个类来模仿“静态”成员,以便定义类常量。
f.e。
class foo:
class NoAuthActions: Action1, Action2, Action3 = ["action1", "action2", "action3"]
class AuthActions: Action4, Action5, Action6 = ["action4", "action5", "action6"]
在python中有更好的方法吗?
我这样做是为了更好地设计API库。
修改
API是一个基于Web请求(谷歌地图,四方等)..所以我只需要一个更好的方式来包装它。由于API本身由用户可以做而不能做的动作类型组成,我需要一种更好地组织它的方法。
所以命名空间听起来像是一种更好的订购方式,因为请求api中的每个端点都有操作(更明智的是我提到我采取这种方法,因为所有的操作有相同的基本网址。)
简单地说:我需要一种设计,API可以很容易地使用所有操作,并使所需的身份验证尽可能地与API解耦。毕竟,我只需要一个oauth令牌或application_ID
感谢
答案 0 :(得分:3)
为什么是内部阶级?
class Foo:
action1, action2, action3 = ["action1", "action2", "action3"]
将创建一个包含三个类属性Foo
,action1
和action2
的类action3
。您可以通过Foo.action1
或foo.action1
访问Foo
实例foo
。要更改类变量的值,请使用
Foo.action1 = "new_action"
或
foo.__class__.action1 = "new_action"
答案 1 :(得分:0)
如果您希望这些项目是只读常量,请考虑使用此问题的答案之一Class-level read-only properties in Python。