知行编程网知行编程网  2022-11-22 06:30 知行编程网 隐藏边栏  2 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python中的静态属性和方法是什么意思的相关知识,希望可以帮到处于编程学习途中的小伙伴

静态属性和方法在python中是什么意思

Python的类方法和静态方法很相似,都推荐使用类调用(其实也可以使用对象调用)。

类方法和静态方法的区别在于Python会自动绑定类方法的第一个参数,而类方法的第一个参数(通常建议参数名是cls)会自动绑定到班级

本身;但对于静态方法则不会自动绑定。

推荐:

用@classmethod 修饰的方法是类方法;用@staticmethod 修饰的方法是静态方法。

下面代码示范了定义类方法和静态方法:

class Bird:
    # classmethod修饰的方法是类方法
    @classmethod
    def fly (cls):
        print('类方法fly: ', cls)
    # staticmethod修饰的方法是静态方法
    @staticmethod
    def info (p):
        print('静态方法info: ', p)
# 调用类方法,Bird类会自动绑定到第一个参数
Bird.fly()  #①
# 调用静态方法,不会自动绑定,因此程序必须手动绑定第一个参数
Bird.info('crazyit')
# 创建Bird对象
b = Bird()
# 使用对象调用fly()类方法,其实依然还是使用类调用,
# 因此第一个参数依然被自动绑定到Bird类
b.fly()  #②
# 使用对象调用info()静态方法,其实依然还是使用类调用,
# 因此程序必须为第一个参数执行绑定
b.info('fkit')

从上面加粗的代码可以看出,@classmethod修饰的方法是类方法,定义了一个cls参数,自动绑定到Bird类

本身,无论程序使用类还是对象调用方法,Python都会始终将类方法的第一个参数绑定到类本身,比如代码①和②的执行效果

果。

上面的程序还使用@staticmethod 定义了一个静态方法。程序也可以用一个类调用静态方法,或者用一个对象调用静态方法,无论使用哪种方法。

式调用,Python 都不会为静态方法执行自动绑定。

在用Python编程时,一般不需要使用类方法或静态方法。程序可以使用函数代替类方法或静态方法。但在特殊情况下(如

使用工厂模式),类方法或静态方法也是不错的选择。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享