我想要一个Python中的类,其接口如下:
import myclass
client = myclass.Client("user", "password")
client.users.create("user1")
client.posts.create("user1", "Hello, World!")
注意,我不想仅仅使用create_user
或create_post
,而是使用两个点指定方法:users.create
/posts.create
我希望这个特定的接口模仿我尝试使用的httpapi(它有诸如“/API/users/create”和“/API/posts/create”这样的端点)
如果我在myclass.py
中定义我的类:
那么如何创建这些点名称空间的方法呢?我的第一个想法是创建这样的子类:
class Client(object):
def __init__(self, user, pass):
self.user = user
self.pass = pass
self.users = ClientUserAPI()
self.posts = ClientPostAPI()
class ClientUserAPI(object):
def create(self):
# Do some cURL magic
class ClientPostAPI(object):
def create(self):
# Do some cURL magic
然而,如果我这样做,我会遇到两个问题中的一个(一个很严重,另一个只是哲学/意识形态)
ClientUserAPI
扩展了“Client”,那么__init__
方法将创建一个无限循环ClientUserAPI
扩展了“object”,那么它就不能直接访问self.user
和{有更好的解决办法吗?在
相关问题 更多 >
编程相关推荐