zoukankan      html  css  js  c++  java
  • self与类方法

    在Python中定义方法时,会经常用到self,如何理解self?其实很简单,只需要区分两个概念,“类变量”和“对象”,而self指代的是“对象”。

    以代码说明,例如定义Person类:

    class Person:
        def __init__(self,name):
            self.name = name
        
        def play(self):
            print('{} is playing'.format(self.name))
    

    实例化一个对象

    andy = Person('andy')
    

    代码中的self是一个保存Person对象的变量,而play是一个属于Person类的函数,因此可以这样调用play函数:

    >>> Person.play(andy)
    andy is playing
    

    在实例化对象的时候,程序就自动创建了andy的play方法,因此也可以这样调用:

    >>> andy.play()
    andy is playing
    

    要注意的是,Person.play是Person中的函数,而andy.play是与andy绑定的方法,二者不是同一个实体:

    >>> Person.play
    <function Person.play at 0x000002B32A005940>
    >>> andy.play
    <bound method Person.play of <__main__.Person object at 0x000002B329F76B20>>
    >>> andy
    <__main__.Person object at 0x000002B329F76B20>
    

    此外,在定义类方法时,用其它变量名代替self也是可以的,self并不是一个python关键字,例如:

    class Person:
        def __init__(myself,name):
            myself.name = name
        
        def play(myself):
            print('{} is playing'.format(myself.name))
    
  • 相关阅读:
    Android 对话框(Dialog)
    struts2 开发模式
    Struts2动态方法调用(DMI)
    Struts2中 Path (getContextPath与basePath)
    String path = request.getContextPath
    ios虚拟机安装(二)
    Spring MVC 的 研发之路
    Swift辛格尔顿设计模式(SINGLETON)
    【算法导论】多项式求和
    uva 11181
  • 原文地址:https://www.cnblogs.com/bill-h/p/13800385.html
Copyright © 2011-2022 走看看