博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【day25】类方法classmethod、静态方法staticmethod、普通方法
阅读量:6793 次
发布时间:2019-06-26

本文共 827 字,大约阅读时间需要 2 分钟。

 

 

普通方法:通过实例传参数进行调用的方法。s = 类(参数)

 

静态方法staticmethod:如果我们想写仅仅与类交互而不是与实例交互的方法,用类方法就可以达成,好处是不让类代码的关系到类定义的外面,也避免了今后代码维护的困难。

class Foo:    def __init__(self):        pass        @staticmethod    def say_hi(self):        print('hi,im staticmethod')   Foo.say_hi()        #不用实例化,就可以调用该方法
#输出 hi,im staticmethod

 

  当我们要是用类的属性时,必须使用类名.属性,而类名来自于实例名,所以必须创建一个实例,然后调用类的属性。但是我们只想与类而不是与实例交互,怎么办呢?

用classmethod,就可以不创建实例在类中调用属性。

class Foo:    f = 'im classmethod '    def __init__(self):        pass    def say_hi(self):        print(self.f)        #与实例交互的调用q = Foo()print(q.sayhi)
#输出im classmethod
class Foo:    f = ' im classmethod '    def __init__(self):        pass    @classmethod    def say_hi(cls):        print(cls.f)Foo.say_hi()  #不需要实例化输出:im classmethod

 

以上三种方法分别成为:实例方法、静态方法、类方法。

 

转载于:https://www.cnblogs.com/weiyumangmang/p/7376258.html

你可能感兴趣的文章
CSS学习笔记
查看>>
Power Designer逆向工程连接数据库创建pdm-oracle
查看>>
【Audio&Video】支持的媒体格式(2)
查看>>
postfix疯狂外发垃圾邮件之分析与解决,思路分析与解决办法
查看>>
ios中webview的高级用法(二) - webview与js的通信框架
查看>>
dell网卡emN更名ethN或ethN更名emN的二种方法
查看>>
JSONP——解决AJax跨域问题
查看>>
nginx的502错误
查看>>
Ubuntu基本软件安装和web开发环境配置
查看>>
示例:抓包工具排除网络故障---查看谁在发送广播包
查看>>
INSERT INTO SELECT 语句及使用
查看>>
《可爱的Python》读书笔记(八)
查看>>
linux之cut用法
查看>>
sed入门介绍
查看>>
YII2中分页组件的使用
查看>>
更多的JS1K分享
查看>>
我的友情链接
查看>>
linux系统的7种运行级别
查看>>
浅析分析表空间
查看>>
我的友情链接
查看>>