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))
    
  • 相关阅读:
    qemu-kvm磁盘读写的缓冲(cache)的五种模式
    关于追踪qemu 源码函数路径的一个方法
    准备升大三啦
    关于Vim的一个配置文件
    POJ 3253
    hihocoder 第二十五周 spfa 最短路
    POJ 2718 穷举
    《鸟哥Linux私房菜基础学习篇》命令索引
    博文流
    《SDN核心技术剖析和实战指南》3.3读书笔记
  • 原文地址:https://www.cnblogs.com/bill-h/p/13800385.html
Copyright © 2011-2022 走看看