python | 实例函数、静态函数和类函数

实例方法

在类中定义的方法,一般都是实例方法,第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法),只能由实例对象调用。

类方法

定义前需要使用@classmethod装饰器进行装饰。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法),调用此方法时,会同时创建一个实例,注意:此方法调用时,类的构造函数必须要有默认值,类对象或实例对象都可以调用。

静态方法

定义前需要使用@staticmethod装饰器进行装饰。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法,调用此方法时,不需要进行实例化,类对象或实例对象都可以调用。

实例:

# coding=utf-8


class Chinese(object):
    nationality = '中国'
    
    def __init__(self, name='Super于', age=25):
        self.name = name
        self.age = age


    # 实例方法
    def print_info(self):
        print('国籍:', Chinese.nationality)
        print('姓名:', self.name)
        print('年龄:', self.age)


    # 类方法
    @classmethod
    def get_nationality(cls):
        print('类方法生成了实例对象:', cls)
        # print('姓名:', self.name)  # 会报错 name 'self' is not defined
        return cls.nationality


    # 静态方法
    @staticmethod
    def print_interest(interest):
        print('我的爱好是', interest)
    
if __name__ == "__main__":    
    # 调用实例方法,首先对类进行实例化
    superyujx = Chinese()
    superyujx.print_info()
    
    # 调用类方法,同时会创建一个实例
    print(Chinese.get_nationality())


    # 调用静态方法
    Chinese.print_interest('编程')

结果:

国籍:中国
姓名:Super于
年龄:25
类方法生成了实例对象:<class '__main__.Chinese'>
中国
我的爱好是 编程

我是「Super于」,立志做一个每天都有正反馈的人!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值