小编Ste*_*ley的帖子

__init__没有自我参数的函数定义

在挖掘python Counter类时collections,我发现了一些我认为特殊的东西:它们没有self__init__函数的参数中明确使用参数.

请参阅下面的代码(直接复制而不使用docstring):

class Counter(dict):
    def __init__(*args, **kwds):
        if not args:
            raise TypeError("descriptor '__init__' of 'Counter' object "
                            "needs an argument")
        self, *args = args
        if len(args) > 1:
            raise TypeError('expected at most 1 argments, got %d' % len(args))
        super(Counter, self).__init__()
        self.update(*args, **kwds)
Run Code Online (Sandbox Code Playgroud)

稍后在同一个类中,updatesubtract方法也以相同的方式定义.

在你向我指出有关self课程如何运作的问题之前,我会注意到我不相信这是一个重复的问题.我理解self通常self是如何工作的,而不是关键字(只是标准实践)等.我也理解这段代码是有效的(我不是在质疑*unpack/explode/starred-expressions语法的有效性)

我的问题与为什么......

  • 为什么要实现这样的类的__init__其他正常(非@static/ @class方法),以及在未来应该考虑在什么情况下使用它?
  • 为什么只有同一类的特定方法实现如此?
  • 在什么情况下调用这些方法没有任何args(如果有的话),触发第一个TypeError?
  • 在什么情况下可以self手动填写这些方法(例如Counter.__init__(some_counter))?还是其他例子?

我不得不认为它与TypeError("描述符......")有关.

python

18
推荐指数
1
解决办法
339
查看次数

xlwings 中的表格格式

如何格式化xlwings中的表格?例如,如果我想将 Excel 样式“浅蓝色,表格样式浅 2”添加到 xlwings 中的 Range 对象。

由于它不在 xlwings 文档中,我相信它看起来像这样(在连接到 wb 和所有内容之后):

xw.Range('A1').api. #Something goes here
Run Code Online (Sandbox Code Playgroud)

作为后续问题,如何了解在获取 api 对象后您有哪些选项?我看到这样做的唯一地方是在其他问题中,这里基本上只是对此类问题的答案的汇编。

(这样我们就不用一直打扰你了,菲利克斯;))

python excel xlwings

3
推荐指数
1
解决办法
4654
查看次数

标签 统计

python ×2

excel ×1

xlwings ×1