zoukankan      html  css  js  c++  java
  • 面向对象(四)-实例,类,静态方法

    实例方法,类方法,静态方法

    # 格式 
    class A: 
    
          def 实例方法(self): 
          """实例方法""" 
          pass 
    
          @classmethod 
          def 类方法(cls):
          """类方法""" 
          pass 
    
          @staticmethod 
          def 静态方法(): 
          pass
    

    代码演示

    class Student: 
    
          gender = "男" # 类属性:公共资源
     
          def __init__(self, name, age): 
                self.name = name self.age = age 
                # self.gender = gender 
    
          def write_code(self): 
                """写代码"""
                print(f"{self.name}在教室中写代码") 
    
          @staticmethod 
          def do_homework(): 
                """写家庭作业""" 
                print("认真完成家庭作业") 
    
          @classmethod
          def modify_gender(cls):
                 """修改类属性 
                   cls:当前的类名 """ 
                # Student.gender = "女" 
                cls.gender = "女" # 建议方法 
                print("修改成功") 
    
          @staticmethod 
          def info(): 
                """展示学生信息""" 
                print("教室位置:三班") 
                print("班级人数:8人") 
                print("学生性别:都是男生") 
    
    zs = Student("张三",20) 
    ls = Student("李四",25) 
    
    # 调用实例方法:可以 
    # zs.write_code() 
    
    # 调用静态方法:可以 
    # zs.do_homework() # 
    
    #调用类方法:可以,不推荐 
    # zs.modify_gender() 
    
    # 修改了类属性为女 
    # print(zs.gender) # 女 
    
    # 类对象 
    # 直接调用实例方法:报错 
    # Student.write_code() # 报错 
    # Student.write_code(zs) # 正确 
    # Student.write_code(Student) # 错误
     
    # 调用类方法:可以,推荐 
    Student.modify_gender() 
    
    # 调用静态方法:可以 
    Student.do_homework()
    

    2 是否能被对象调用

    • 实例对象均可以访问
    • 类对象可以访问类方法和静态方法,不能访问实例方法

    3 是否能访问属性

    • 实例方法:可以访问类属性和实例属性
    • 类方法:可以访问类属性,不能访问实例属性
    • 静态方法:均不能访问

    4 应用场景

    • 实例方法: 用于描述具体实例的相关操作。
    • 类方法:用于对类属性的相关操作。
    • 静态方法:用于定义与对象无关的独立功能

    5 方法总结

  • 相关阅读:
    Qtcreator中printf()/fprintf()不显示问题处理方法
    C++实现斐波那契数列
    DAPP超详细解释
    自底向上的合并排序算法
    Python 生成哈希hash--hashlib模块
    使用js的一些小技巧
    js——事件
    django学习
    js——js特效
    js--DOM学习
  • 原文地址:https://www.cnblogs.com/duxiangjie/p/14207743.html
Copyright © 2011-2022 走看看