zoukankan      html  css  js  c++  java
  • Python3.x基础学习-静态方法和类方法

    静态方法和类方法

    实例方法/对象方法 实例方法或者叫对象方法,指的是我们在类中定义的普通方法
    只有实例化后才能使用的方法,该方法的第一个形参接收的一定是对象的本身

    静态方法

    1格式:在方法上面添加 @staticmethod
    2.参数:静态方法可以有参数也可以无参数
    3.应用场景:一般用于类对象以及实例对象无关的代码
    4.使用方式:类名.静态方法名(或者对象名.静态方法名)

    class Dog:
        @property
        def eat(self):
            print("吃骨头")
    
    # Dog.eat()             # 普通方法只能通过对象调用的方式使用
    dog =Dog()
    dog.eat
    
    # 吃骨头
    # 静态方法不能使用类或实例的任何属性和方法
    class Game:
        @staticmethod
        def show_menu(x):
            print(x)
            print("开始按钮1")
            print("暂停按钮2")
            print("结束按钮3")
    
    # g = Game()
    # g.show_menu()
    Game.show_menu(2)
    
    # 2
    # 开始按钮1
    # 暂停按钮2
    # 结束按钮3


    类方法

    无需实例化,可以通过类直接调用方法,但是方法的第一个参数接手的一定是类本身
    1.在方法上面添加@classmethod
    2.方法的参数为cls也可以是其他名称,但是一般默认为cls
    3.cls指向类对象
    4.应用场景:当一个方法中只涉及到静态属性的时候可以使用类方法(类方法用来修改类属性)
    5.使用 可以是 对象名.类方法名。 或者是 类名.类方法名

    class Person:
        role = '人类'
        @classmethod
        def test(cls):         #第一个参数必须是当前类对象,通过cls传递类的属性和方法(不能传实例的属性和方法)
            print(cls.role)
            print("----in test----")
    # Person.test()
    
    p1 =Person()
    p1.test()
    
    # 人类
    # ----in test----
  • 相关阅读:
    Leetcode & CTCI ---Day 4
    Leetcode & CTCI ---Day 3
    Leetcode & CTCI ---Day 2
    Leetcode & CTCI ---Day 1
    编码格式坑之UTF-8
    15. 3Sum
    第十六周助教总结-第二组
    第十五周助教总结-第二组
    第十四周助教总结-第二组
    第十三周助教总结-第二组
  • 原文地址:https://www.cnblogs.com/johnsonbug/p/12709965.html
Copyright © 2011-2022 走看看