Discuss / Python / Slots在这里不能限制属性吗?

Slots在这里不能限制属性吗?

Topic source

执放

#1 Created at ... [Delete] [Delete and Lock User]

class Chain(object):
    __slots__ = ('_path',)

    def __init__(self, path=''):
        self._path = path

    def __getattr__(self, item):
        return Chain("%s/%s" % (self._path, item))

    def __str__(self):
        return self._path


chain = Chain('/api')
print chain.v1.user.followers.number

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

只要不用self.v1,v1就不算chain的真正的属性,而是返回了新的对象

AlWays_MU

#3 Created at ... [Delete] [Delete and Lock User]

chain.v1调用后返回的是一个新的Chain对象 相当 t1 = Chain('/api/v1') #chain.v1 t2 = Chain('/api/v1/user') ...


  • 1

Reply