python类的调用,Python语言可以用面向对象的方法编程
理解了面向对象的原理之后,我们就可以调用没有内容的类了。关于类的调用方法,朋友们接触最多的是实例调用,但是还有另外两个方法也是我们需要掌握的。他们的名字可能以不同的形式出现。在这里,我们将全面讲解全班调用的三个方法。让我们一起来看看它们。
该类有三个主要的调用方法:
(1)类的例子;
(2)静态方法(@ decorator);
(3)类方法(clc)。
实例是最常见的,一般使用“类名。法”。静态方法由类调用,没有默认参数。移除实例方法参数中的self,然后在方法中设置它
义上方加上@staticmethod(前面加@是python函数的装饰器方法),就成为静态方法。类方法由类调用,采用@classmethod装饰,至少传入一个cls(代指类本身,类似self)参数。执行类方法时,自动将调用该方法的类赋值给cls,建议使用类名.类方法的调用方式。
实例调用法:
classStockCode:def__init__(self,name,code):
self.name=name
self.code=code
defget_stock(self):
return(self.name,self.code)
s=StockCode('中国平安','601318.SH')
s.get_stock()
#输出结果:('中国平安','601318.SH')
静态方法
静态方法由类调用,无默认参数。将实例方法参数中的self去掉,然后在方法定义上方加上@staticmethod,就成为静态方法。它属于类,和实例无关。建议只使用类名.静态方法的调用方式。(虽然也可以使用实例名.静态方法的方式调用)
#-*-coding:utf-8-*-#@Time:2018/5/3000317:21
#@Author:Langzi
#@Blog:www.langzi.fun
#@File:面向对象4.py
#@Software:PyCharm
importsys
importrequests
reload(sys)
sys.setdefaultencoding('utf-8')
classff:
@staticmethod
defrunx():
printrequests.get('http://www.langzi.fun').status_code
ff.runx()
#这里就直接调用了类的变量,只在类中运行而不在实例中运行的方法
类调用法:
有的时候传入的参数并不是('中国平安','601318.SH')这样的格式,而是('中国平安-601318.SH')这样的,那该怎么做?首先要把这个拆分,但是要使用实例方法实现起来很麻烦,这个时候就可以使用类方法。
classStockCode:def__init__(self,stock,code):
self.stock=stock
self.code=code
@classmethod
#装饰器,立马执行下面的函数
defsplit(cls,sc):
#cls是默认的这个类的init函数,sc是传入参数
stock,code=map(str,sc.split('-'))
#这里转换成了格式化的结构
dd=cls(stock,code)
#然后执行这个类第一个方法
returndd
s=StockCode.split(('中国平安-601318.SH'))
#查看属性
s.stock,s.code
#输出结果:('中国平安','601318.SH')
以上就是python面向对象中调用类的三种方法,具体方法分析和代码都展现给了大家,小伙伴们可以逐个尝试和使用。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。