相关疑难解决方法(0)

Python __init__和self他们做了什么?

我正在学习Python编程语言,而且我遇到了一些我不太了解的东西.

在如下方法中:

def method(self, blah):
    def __init__(?):
        ....
    ....
Run Code Online (Sandbox Code Playgroud)

怎么self办?这是什么意思?这是强制性的吗?

__init__方法有什么作用?为什么有必要?(等等.)

我认为它们可能是OOP结构,但我不太了解.

python oop self

737
推荐指数
18
解决办法
102万
查看次数

使用多个__init__参数对元组进行子类化

以下代码有效:

class Foo(tuple):

    def __init__(self, b):
        super(Foo, self).__init__(tuple(b))

if __name__ == '__main__':
    print Foo([3, 4])

$ python play.py 
Run Code Online (Sandbox Code Playgroud)

结果:

play.py:4: DeprecationWarning: object.__init__() takes no parameters
  super(Foo, self).__init__(tuple(b))
(3, 4)
Run Code Online (Sandbox Code Playgroud)

但不是以下内容:

class Foo(tuple):

    def __init__(self, a, b):
        super(Foo, self).__init__(tuple(b))

if __name__ == '__main__':
    print Foo(None, [3, 4])

$ python play.py 
Run Code Online (Sandbox Code Playgroud)

结果:

Traceback (most recent call last):
  File "play.py", line 7, in <module>
    print Foo(None, [3, 4])
TypeError: tuple() takes at most 1 argument (2 given)
Run Code Online (Sandbox Code Playgroud)

为什么?

python inheritance tuples subclass

49
推荐指数
2
解决办法
2万
查看次数

标签 统计

python ×2

inheritance ×1

oop ×1

self ×1

subclass ×1

tuples ×1