zoukankan      html  css  js  c++  java
  • Python高级笔记(五)--实例方法、静态方法和类方法

    1. 类属性、实例属性

    • 类属性在内存中只保存一份
    • 实例属性在每个对象中都要保持一份

    obj.__class__.country="xxx": 可以修改类属性

    2. 实例方法、静态方法和类方法

    • 实例方法:由对象调用;至少一个self参数;执行实例方法时,自动将调用该方法的对象赋值给 self;(python解释器传入:实例对象引用

    • 类方法:由类调用;至少一个cls参数;执行类方法时,自动将调用该方法的类赋值给 cls; (python解释器传入:类对象引用(类属性)

      • 第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法
      • 类对象或实例对象都可以调用。
    • 静态方法:由类调用;无默认参数;

      • 参数随意,没有“self”和“cls”参数,但是方法体 不能使用 类或实例的任何属性和方法
    • 实例对象有多个(只有实例属性是独有的,其他都不是独有的),类对象只有一个;
    class Foo(object):
        def __init__(self, name):
            self.name = name
    
        def ord_func(self):
            print("实例方法")
    
        @classmethod                           # 装饰器
        def class_func(cls):
            """定义类方法,至少有一个cls参数"""
            print('类方法')
    
        @staticmethod
        def static_func():
            """ 定义静态方法,无默认参数 """
            print("静态方法")
    
    f = Foo("中国")
    f.ord_func()

  • 相关阅读:
    bootstrapValidator重新校验/全选回显
    mybatis遍历map参数查询
    location.href传json字符串
    springmvc异步处理
    intellIJ IDEA学习笔记3
    intellIJ IDEA学习笔记2
    intellIJ IDEA学习笔记
    maven国内镜像
    Docker版本Jenkins的使用
    Docker容器网络
  • 原文地址:https://www.cnblogs.com/douzujun/p/10787921.html
Copyright © 2011-2022 走看看