• python中的self含义


    原文摘自

    class A:
       pass
     
    a = A()

    a是A的一个实例对象;

    执行:
    A.foo = lambda x : x + 1
    A.foo(1)
    输出:
    2
    ---------
    然后执行:
    a.foo(1)
    会直接报错.

    上面执行"a.foo(1)"语句时有个报错,说只需要一个参数,但是给了两个参数,这第二个参数是怎么来的,为什么A.foo(1)就不会出错。这里我们可以引出python类中的方法函数,方法函数指的是通过类的实例化对象调用的函数,方法函数的第一个形参表示类的实例化对象,通常写成self。执行a.foo(1)时就相当于执行A.foo(a,1),因为A.foo()中只有一个形参,传入的参数多于需要的参数,所以发生类型错误。--来自原文在文章head可查

    改进:::我们在A的定义中重新定义foo:

    class A:
       def foo(self,n):
           print(n+1)
    a = A()

    现在我们在a中调用foo就不会有问题了:

    执行:
    a.foo(1)

    我们也可以试试调用A.foo:

    执行:
    A.foo(a,1)

    总结

    python的类中定义函数时的self关键字跟python的方法函数有关,方法函数由类的实例化对象调用,需要把调用它的实例化对象传入方法函数中,self即是表示实例化对象的形参。

  • 相关阅读:
    用Javascript进行简单的Table点击排序.
    asp也来玩三层?
    用在JavaScript的RequestHelper
    一个JavaScript方法的演变
    自己动手,实现jQuery中的ImageCopper.
    notes on relations
    mutex and condition variable
    virtual destructor
    virtual inheritance
    一道概率题
  • 原文地址:https://www.cnblogs.com/spider3658/p/13710585.html
Copyright © 2020-2023  润新知