zoukankan      html  css  js  c++  java
  • 类中的函数带有self,不带self的区别

    1.类里函数不带self,这是我们调用类里的函数直接用类名.函数名()

    class shop(object):
        def scan_goods():                 #括号内不带self
            print('浏览商品')
        def choose_goods():
            print('选择商品')
        def delete_goods():
            print('删除商品')
    a=getattr(shop,'scan_goods')()
    a=getattr(shop,'delete_goods')()
    lis=[('浏览商品','scan_goods'),('选择商品','choose_goods'),('删除商品','delete_goods')]
    for index,opt in enumerate(lis,1):
        print(index,opt[0])            
        a=getattr(shop,opt[1])()                  #类名不加()直接加函数名调用
    
    结果:
    
    浏览商品
    删除商品
    1 浏览商品
    浏览商品
    2 选择商品
    选择商品
    3 删除商品
    删除商品
    

      

    2.带有self的类调用函数,调用类里的函数直接用类名(args1,args2).函数名()

    class Animal(object):
        def __init__(self,name,kind):
            self.name = name
            self.kind = kind
    
        def eat(self,food):             #带有参数的self
            print('%s eat %s'%(self.name,food))
    
        def drink(self):
            print('%s drink water'%(self.name))
    
        def catch(self):
            print('%s catch mouse'%(self.name))
    Animal('猫','美短').catch()                      #调用Animal(),这里需要带括号传参数      
    结果: 猫 catch mouse

      

    3.@staticmethod方法:

    class C(object):
        @staticmethod
        def f():
            print('runoob');
     
    C.f();          # 静态方法无需实例化
    cobj = C()
    cobj.f()        # 也可以实例化后调用
    

      

  • 相关阅读:
    python 文件路径拼接、判断、创建、输出
    热力图制作
    矩阵文件添加列标签
    cmd运行 ‘.py’ 文件
    hdu 2017 字符串统计
    hdu 2016 数据的交换输出
    hdu 2014 青年歌手大奖赛_评委会打分
    hdu 2013 蟠桃记
    hdu 2012 素数判定
    hdu 2011 多项式求和
  • 原文地址:https://www.cnblogs.com/Zhao159461/p/10638257.html
Copyright © 2011-2022 走看看