Maya Python基础: 类属性 VS 实例属性、实例方法、类方法、静态方法

目录

[一 类属性 VS 实例属性](#一 类属性 VS 实例属性)

[二 实例方法、类方法、静态方法](#二 实例方法、类方法、静态方法)


一 类属性 VS 实例属性

类属性 实例属性
位置 类内部, 方法外部 **init**或其他方法内部
共享性 所有实例共享 每个实例独有
访问方式 类名.属性名 or 实例.属性名 实例.属性名
python 复制代码
class Software:
    #类属性
    VERSION = '1.0'
    LANGUAGE = 'Chinese'
    
    def __init__(self,name):
        #实例属性
        self.name = name 
        
class App(Software):
     pass
        
    
software = Software('好学英语软件')
#修改类属性可以影响所有实例
Software.VERSION='2.0'
print(software.name)
print(software.VERSION)

app = App('好学app')
#子类可以继承父类的类属性和实例属性
print(app.name)
print(app.VERSION)

二 实例方法、类方法、静态方法

类方法和静态方法是两种特殊的方法类型, 与普通的实例方法有所不同

方法 实例方法 类方法 静态方法
介绍 操作实例状态的方法 操作类状态的方法 与类和实例都无关的工具方法
使用场景 需要访问对象时 需要访问类的时候 不需要访问对象和类时
装饰器 @classmethod @staticmethod
第一个参数 self(实例本身) cls(类本身) 无特殊参数
访问权限 可访问实例属性和类属性 只能访问类属性 实例属性和类属性都不能访问
python 复制代码
class Banji:
    teacher = '张老师'
   
    #构造方法
    def __init__(self,class_name):
        self.class_name = class_name
    
    #实例方法:可访问实例属性和类属性
    def instance_method(self,student_numbers):
        print(self.teacher+'的班级'+self.class_name+f'有{student_numbers}名学生') 
        return self.class_name + f'{student_numbers}'
        
    #类方法:只能访问类属性 
    @classmethod
    def get_teacher(cls):
        print(cls.teacher)
       
    #静态方法:实例属性和类属性都不能访问
    @staticmethod     
    def meeting():
        print('班级开会了')
  
banji = Banji('三年四班')
banji.instance_method(40)
banji.get_teacher()
banji.meeting()
相关推荐
孟健15 小时前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞16 小时前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽19 小时前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers
敏编程1 天前
一天一个Python库:jsonschema - JSON 数据验证利器
python
前端付豪1 天前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
databook1 天前
ManimCE v0.20.1 发布:LaTeX 渲染修复与动画稳定性提升
python·动效
花酒锄作田2 天前
使用 pkgutil 实现动态插件系统
python
前端付豪2 天前
LangChain链 写一篇完美推文?用SequencialChain链接不同的组件
人工智能·python·langchain
曲幽2 天前
FastAPI实战:打造本地文生图接口,ollama+diffusers让AI绘画更听话
python·fastapi·web·cors·diffusers·lcm·ollama·dreamshaper8·txt2img
老赵全栈实战2 天前
Pydantic配置管理最佳实践(一)
python