为了账号安全,请及时绑定邮箱和手机立即绑定

Python_init_和Self,它们是做什么的?

Python_init_和Self,它们是做什么的?

MMMHUHU 2019-06-05 15:27:59
Python_init_和Self,它们是做什么的?我正在学习Python编程语言,我遇到了一些我不完全理解的东西。采用如下方法:def method(self, blah):     def __init__(?):         ....     ....什么self做?它意味着什么?是强制性的吗?是什么__init__方法可以吗?为什么有这个必要?(等)我认为它们可能是OOP结构,但我不太清楚。
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

是的,你是对的,这些是OOP构造。

__init__是类的构造函数。这个self参数引用对象的实例(如this在C+中)。

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

你的xy参数将存储在堆栈中的变量中,当init方法超出作用域时将被丢弃。将这些变量设置为self._xself._y将这些变量设置为Point对象(对象的生存期可访问)。


查看完整回答
反对 回复 2019-06-05
?
慕沐林林

TA贡献2016条经验 获得超9个赞


一个简单的例子

希望它能有所帮助,下面是一个简单的例子,我用它来理解在类中声明的变量与在类中声明的变量之间的区别。__init__职能:


class MyClass(object):

     i = 123

     def __init__(self):

         self.i = 345


a = MyClass()

print a.i

345

print MyClass.i

123


查看完整回答
反对 回复 2019-06-05
  • 3 回答
  • 0 关注
  • 1122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信