首页 > 编程语言 > 详细

python中实例方法,类方法和静态方法的区别。

时间:2019-12-22 15:12:01      阅读:98      评论:0      收藏:0      [点我收藏+]

实例方法,必须要创建实例才能调用,里面有self关键字,有初始化函数必须对初始化函数进行传参。

类方法,可以直接类名.方法名直接调用,也可以创建实例调用。里面有cls关键字,调用时,直接类名.方法名,可以绕过实例方法的初始化函数,类方法不能访问实例属性。

静态方法,可以直接类名.方法名直接调用,也可以创建实例调用。没有关键字,就像调用函数一样方便,调用时,直接类名.方法名,可以绕过实例方法的初始化函数,静态方法不能访问实例属性。

下图3种方法:

技术分享图片

看下图类方法和静态方法,没有创建实例去调用:

技术分享图片

由上图调用结果可以知道,类方法和静态方法,都是通过类名.方法名的方式调用,不需要创建对象,也不需要对初始化函数进行传参。而实例方法,必须要创建实例对象才能调用,如果方法里面有初始化函数也必须对初始化函数进行传参。

看下图类方法和静态方法,创建实例后去调用:

技术分享图片

代码如下:

import requests

class HttpRequest():

    def __init__(self,url,data):
        self.url = url
        self.data = data

    # todo 实例方法
    def send_post(self,url,data):   # todo 实例方法,只能通过实例来调用
        res = requests.post(url,data)
        print(res.status_code)

    @classmethod
    def add(cls,x,y):
        print(我是类方法)
        return x+y

    @staticmethod
    def print_msg():
        print(我是静态方法)


if __name__ == __main__:
    # todo 类方法和静态方法可以直接类名.方法名直接调用,可以绕过实例方法的初始化函数
    print(HttpRequest.add(7,8))
    HttpRequest.print_msg()

    url = https://www.ketangpai.com/UserApi/login
    data = {
        "email": "1489088761@qq.com",
        "password": "A1234568","remember": 0
    }
    HttpRequest(url,data).send_post(url,data)

python中实例方法,类方法和静态方法的区别。

原文:https://www.cnblogs.com/xiamaojjie/p/12079710.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!