• __init__()与self


    类有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用,像下面这样:

    def __init__(self): self.data = []

    类定义了 __init__() 方法,类的实例化操作会自动调用 __init__() 方法。如下实例化类 MyClass,对应的 __init__() 方法就会被调用:

    x = MyClass()

    当然, __init__() 方法可以有参数,参数通过 __init__() 传递到类的实例化操作上。例如:

    实例(Python 3.0+)

    #!/usr/bin/python3 class Complex: def __init__(self, realpart, imagpart): self.r = realpart self.i = imagpart x = Complex(3.0, -4.5) print(x.r, x.i) # 输出结果:3.0 -4.5

    self代表类的实例,而非类

    类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

    class Test: def prt(self): print(self) print(self.__class__) t = Test() t.prt()

    以上实例执行结果为:

    <__main__.Test instance at 0x100771878>
    __main__.Test

    从执行结果可以很明显的看出,self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。

    self 不是 python 关键字,我们把他换成 runoob 也是可以正常执行的:

    class Test: def prt(runoob): print(runoob) print(runoob.__class__) t = Test() t.prt()

    以上实例执行结果为:

    <__main__.Test instance at 0x100771878>
    __main__.Test
    萍水相逢逢萍水,浮萍之水水浮萍!
  • 相关阅读:
    洛谷P1908《逆序对》
    洛谷P3884《[JLOI2009]二叉树问题》
    最近公共祖先 LCA
    洛谷P1531《I Hate It》
    洛谷P1563「NOIP2016」《玩具谜题》
    乘法逆元求法
    CF56E 【Domino Principle】
    CF638C 【Road Improvement】
    Luogu
    2018.8.7提高B组模拟考试
  • 原文地址:https://www.cnblogs.com/AIBigTruth/p/14676059.html
Copyright © 2020-2023  润新知