小编yas*_*aka的帖子

在api请求的travis ci构建的响应中,remaining_requests是什么意思?

SUBJ.

这是否意味着在免费帐户中我的api请求数量有限?

响应部分的示例:

{
  "@type": "pending",
  "remaining_requests": 9,
  "repository": {
    "@type": "repository",
Run Code Online (Sandbox Code Playgroud)

当我发送第一个回复时,值为10.经过第二次回复 - 它变为9 ...

travis-ci

5
推荐指数
1
解决办法
291
查看次数

扩展 python abc 类的类的自动委托

如果某个类扩展了 abc 类(抽象基类),那么除非我定义所有抽象方法,否则我无法实例化它。但通常在实现装饰器模式时,我只想定义一些抽象方法,而其他方法则仅委托给装饰对象。这个怎么做?

例如,我想让下面的代码工作:

from abc import ABCMeta, abstractmethod


class IElement(object):
    __metaclass__ = ABCMeta

    @abstractmethod
    def click(self):
        return

    @abstractmethod
    def hover(self):
        return

    # ... more IElement's abstractmethods...


class StandardElement(IElement):

    def click(self):
        return "click"

    def hover(self):
        return "hover"

    # ... more implemented IElement's methods...


class MyElement(IElement):
    def __init__(self, standard_element):
        self._standard_element = standard_element
        delegate(IElement, standard_element)

    def click(self):
        return "my click"


assert MyElement(StandardElement()).click() == 'my click'
assert MyElement(StandardElement()).hover() == 'click'
Run Code Online (Sandbox Code Playgroud)

代替

from abc import ABCMeta, abstractmethod


class IElement(object):
    __metaclass__ = ABCMeta

    @abstractmethod
    def …
Run Code Online (Sandbox Code Playgroud)

python abc

5
推荐指数
1
解决办法
1178
查看次数

为什么python中的__getattr__实现没有拦截魔术方法?

主语

例子:

MyList(object):

    def __init__(self, list_to_be_wrapped):
          self._items = list_to_be_wrapped

    def __getattr__(self, item):
          return getattr(self._items, item)
Run Code Online (Sandbox Code Playgroud)

然后

MyList([1, 2, 3])[-1]
Run Code Online (Sandbox Code Playgroud)

将提高: TypeError: ‘MyList’ object does not support indexing

尽管:

MyList([1, 2, 3]).pop()
Run Code Online (Sandbox Code Playgroud)

将完美运行(pop将被拦截__getattr__并重定向到_items

在我看来,__getattr__考虑到“通过组合而不是继承实现自己的容器类型”的情况,拦截魔术方法会非常有帮助。为什么python不支持这种“拦截”?

python indexing containers magic-methods getattr

4
推荐指数
1
解决办法
901
查看次数

标签 统计

python ×2

abc ×1

containers ×1

getattr ×1

indexing ×1

magic-methods ×1

travis-ci ×1