• Python学习系列之类属性、类方法和静态方法(二十五)


    类属性、类方法和静态方法

    类属性:类中的方法外的变量称为类属性,被该类的所有对象所共享

    类方法:使用@classmethod修饰的方法,使用类名直接访问的方法

    静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法

    代码举例:

    • 类属性的使用方式:
    class Student:
        native_pace='吉林'    #直接写在类里的变量,称为类属性
        def __init__(self,name,age):
            self.name=name      #self.name 称为实体属性,进行了一个赋值的操作
            self.age = age
    
        #实例方法
        def eat(self):
            print('学生在吃饭...')
    
        #静态方法
        @staticmethod
        def method():
            print('我使用了statticmethod进行修饰,所以我是静态方法')
    
        #类方法
        @classmethod
        def cm(cls):
            print('我是类方法,因为我使用了classmethod进行修饰')
    
    #类属性的使用方式
    print(Student.native_pace)
    stu1=Student('张三',20)
    stu2=Student('李四',30)
    print(stu1.native_pace)
    print(stu2.native_pace)
    print('-------------')
    Student.native_pace='北京'
    print(stu1.native_pace)
    print(stu2.native_pace)
    

      执行结果:

      说明:类属性可以使用类名调用也可以使用类对象进行调用,当修改该属性的内容时,调用结果也会随着属性的改变而改变

    类方法的使用方式

      

    class Student:
        native_pace='吉林'    #直接写在类里的变量,称为类属性
        def __init__(self,name,age):
            self.name=name      #self.name 称为实体属性,进行了一个赋值的操作
            self.age = age
    
        #实例方法
        def eat(self):
            print('学生在吃饭...')
    
        #静态方法
        @staticmethod
        def method():
            print('我使用了statticmethod进行修饰,所以我是静态方法')
    
        #类方法
        @classmethod
        def cm(cls):
            print('我是类方法,因为我使用了classmethod进行修饰')
    
    #类方法的使用方式
    Student.cm()
    

      执行结果:

      说明:类方法是用类名直接进行调用,类方法的参数cls可以补用填写

    • 静态方法的使用方式
    class Student:
        native_pace='吉林'    #直接写在类里的变量,称为类属性
        def __init__(self,name,age):
            self.name=name      #self.name 称为实体属性,进行了一个赋值的操作
            self.age = age
    
        #实例方法
        def eat(self):
            print('学生在吃饭...')
    
        #静态方法
        @staticmethod
        def method():
            print('我使用了statticmethod进行修饰,所以我是静态方法')
    
        #类方法
        @classmethod
        def cm(cls):
            print('我是类方法,因为我使用了classmethod进行修饰')
    
    # 静态方法的使用方式
    Student.method()
    

      执行结果:

      说明:静态方法的调用使用类名进行调用,静态方法没有参数

  • 相关阅读:
    英文文法学习笔记(14)分词
    利用别名简化进入docker容器数据库的操作
    英文文法学习笔记(12)形容词
    小知识:在Exadata平台上使用ExaWatcher收集信息
    小知识:调整OCI实例的时区
    小知识:Docker环境缺少vi命令,如何解决
    小知识:Exadata平台去掉密码输错延迟10分钟登录
    英文文法学习笔记(13)副词
    SpringBoot,SpringMvc 参数校验 用法详解
    java 获取项目根路径、获取桌面路径
  • 原文地址:https://www.cnblogs.com/wx170119/p/14469122.html
Copyright © 2020-2023  润新知