zoukankan      html  css  js  c++  java
  • python中实例方法,类方法和静态方法的区别。

    实例方法,必须要创建实例才能调用,里面有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)
  • 相关阅读:
    SQL Server数据库开发的二十一条军规
    session过期后在iframe里操作返回到login.html
    父页面与子页面之间调用时通过JS传值
    使用存储过程并返回值与及返回值的获得方法
    五种提高 SQL 性能的方法
    启动Oracle10G监听时报错 错误 1067:进程意外终止
    程序员必读书籍[分类好]
    心理学入门
    Net能做什么
    程序员要找到自己的兴趣所在
  • 原文地址:https://www.cnblogs.com/xiamaojjie/p/12079710.html
Copyright © 2011-2022 走看看