静态方法类方法属性方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态方法类方法属性方法相关的知识,希望对你有一定的参考价值。

一、静态方法

  首先写一小段代码

技术分享图片技术分享图片

想必执行效果大家都知道(David is eating fish.),那我加上@staticmethod试一下。

技术分享图片

技术分享图片

咦????报错,我下面明明传入了"fish"这个参数。。。,大家都能想到是静态方法起的作用,静态方法实际上跟类就没有什么关系了,把类中的方法变成了静态方法后它就变成了一个单纯的函数,它调用不了类的变量,唯一与类产生关联的是必须通过类去调用。

如果想要传类的一些变量或静态属性也可以,就需要把实例本身传到函数里面去。

技术分享图片


二、类方法

技术分享图片

执行看效果

技术分享图片 

不是定义了self.name = name了吗?怎么又报错?加上了类方法怎么调用不到了?

技术分享图片

看一下效果

技术分享图片

正常了,但是方法里调用的是类变量了。由此可见,类方法只能访问类变量,不能访问实例变量。


三、属性方法

先看一下代码和执行效果

技术分享图片

技术分享图片

我代码最后的P.eat()相当于调用类中的eat方法,那报错说类型是不能调用的,我先把小括号去掉,就相当于调用变量或属性一样,试一下吧。

技术分享图片

执行成功,不再截图。总结一下作用:把一个方法变成一个静态属性,既然是一个属性了就不能通过括号再调用了,仔细一看,我们不加括号调用,那怎么传参数呢?属性可以赋值,我们试一下能不能赋值

技术分享图片

执行:报错,不能赋值

技术分享图片

其实是能赋值的,但是得通过属性方法的另外一种赋值形式来解决,还得通过@eat.setter写一个eat方法

技术分享图片

打印:

技术分享图片


修改是没有问题了,再来看一下删除

技术分享图片

  以上就是属性方法的几种用法,那它在什么时候用呢?比如我想知道一个航班的当前的状态,因为我不是航空公司,我知道调用航空公司的接口才能查到航班的状态,比如去哪儿网想知道航班的状态,它就得连航空公司的接口去查询,想要了解到状态通常需要经历以下几步:

1、连接航空公司的API接口

2、对查询结果进行解析,因为返回的数据可能是任何形式的

3、转成可视化的结果返回给用户

看一下例子:

技术分享图片

执行结果:

技术分享图片

  



以上是关于静态方法类方法属性方法的主要内容,如果未能解决你的问题,请参考以下文章

静态属性类方法静态方法

Python类的静态属性类方法静态方法

java静态资源(静态方法,静态属性)是程序一运行就加载到jvm中,还是当被调用的时候才进行加载呢

静态属性 类方法 静态方法

静态属性 类方法 静态方法

Python_静态属性类方法静态方法