您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python的__init__和self是做什么的?

Python的__init__和self是做什么的?

你是对的,这些是oop结构。

__init__一个类的构造函数。该self参数引用对象的实例(如thisC ++)。

class Point:
    def __init__(self, x, y):
        self._x = x
        self._y = y

__init__分配对象的内存时将调用方法

x = Point(1,2)

self如果要将值与对象持久化,那么在对象的方法内使用参数很重要。例如,如果你实现如下__init__方法

class Point:
    def __init__(self, x, y):
        _x = x
        _y = y

你的x和y参数将存储在堆栈中的变量中,并且当init方法超出范围时将被丢弃。将这些变量设置为self._x并将self._y这些变量设置为Point对象的成员(在对象的生存期内可访问)。

在此代码中:

class A(object):
    def __init__(self):
        self.x = 'Hello'

    def method_a(self, foo):
        print self.x + ' ' + foo

... self变量表示对象本身的实例。大多数面向对象的语言将此作为隐藏参数传递给在对象上定义的方法。Python没有。你必须明确声明它。创建A类的实例并调用方法时,它将自动传递,如…

a = A()               # We do not pass any argument to the __init__ method
a.method_a('Sailor!') # We only pass a single argument

__init__方法大致代表了Python中的构造函数调用时,A()Python为你创建一个对象,并将其作为第一个参数传递给__init__方法。任何其他参数(例如A(24, ‘Hello’))也将作为参数传递-在这种情况下,会引发异常,因为构造函数不期望它们。

python 2022/1/1 18:20:07 有429人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶