• 技术文章 >Python技术 >Python基础教程

    python面向对象中的调用方法有哪些?怎么用?

    小妮浅浅小妮浅浅2020-12-10 13:47:27原创4907

    在我们理解了面向对象里面的原理后,我们就可以使用不用内容进行类的调用。关于类的调用方法小伙伴们接触最多的是实例调用,不过还有其他两种方法同样需要我们掌握。它们在名称出现上可能会是不同的形式,这里我们将会对整个类调用的三种方法进行全面讲解,下面一起看看吧。

    类的调用方法主要有三种:

    1)类的实例;

    (2)静态方法(@装饰器);

    3)类的方法(clc)。

    实例调用最常见,一般使用“类名.方法”。静态方法由类调用,无默认参数。将实例方法参数中的self去掉,然后在方法定义上方加上@staticmethod(前面加@是python函数的装饰器方法),就成为静态方法。类方法由类调用,采用@classmethod装饰,至少传入一个cls(代指类本身,类似self)参数。执行类方法时,自动将调用该方法的类赋值给cls,建议使用类名.类方法的调用方式。

    实例调用法:

    class StockCode:
        def __init__(self,name,code):
            self.name=name
            self.code=code
        def get_stock(self):
            return (self.name,self.code)
    s=StockCode('中国平安','601318.SH')
    s.get_stock()
    #输出结果:('中国平安', '601318.SH')

    静态方法

    静态方法由类调用,无默认参数。将实例方法参数中的self去掉,然后在方法定义上方加上@staticmethod,就成为静态方法。它属于类,和实例无关。建议只使用类名.静态方法的调用方式。(虽然也可以使用实例名.静态方法的方式调用)

    # -*- coding: utf-8 -*-
    # @Time    : 2018/5/3 0003 17:21
    # @Author  : Langzi
    # @Blog    : www.langzi.fun
    # @File    : 面向对象4.py
    # @Software: PyCharm
    import sys
    import requests
    reload(sys)
    sys.setdefaultencoding('utf-8')
    class ff:
        @staticmethod
        def runx():
            print requests.get('http://www.langzi.fun').status_code
    ff.runx()
    #这里就直接调用了类的变量,只在类中运行而不在实例中运行的方法

    类调用法:

    有的时候传入的参数并不是('中国平安','601318.SH')这样的格式,而是('中国平安-601318.SH')这样的,那该怎么做?首先要把这个拆分,但是要使用实例方法实现起来很麻烦,这个时候就可以使用类方法。

    class StockCode:
        def __init__(self,stock,code):
            self.stock=stock
            self.code=code
        @classmethod
        # 装饰器,立马执行下面的函数
        def split(cls,sc):
            # cls是默认的这个类的init函数,sc是传入参数
            stock,code=map(str,sc.split('-'))
            # 这里转换成了格式化的结构
            dd = cls(stock,code)
            # 然后执行这个类第一个方法
            return dd
    s=StockCode.split(('中国平安-601318.SH'))
    #查看属性
    s.stock,s.code
    #输出结果:('中国平安', '601318.SH')


    以上就是python面向对象中调用类的三种方法,具体方法分析和代码都展现给了大家,小伙伴们可以逐个尝试和使用。

    专题推荐:python面向对象调用
    上一篇:python中的reduce函数是如何使用的? 下一篇:类继承如何在python面向对象中实现?有什么好处?

    相关文章推荐

    • python面向对象编程详解• Python面向对象编程之组合关系• 深入理解python面向对象-类成员• 详解Python面向对象编程之类、实例、方法• python面向对象的三大特征,你知道么?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网