企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Python 类方法 > 原文: [https://pythonbasics.org/classmethod/](https://pythonbasics.org/classmethod/) 类方法是一种在所有对象之间共享的方法。 要调用类方法,请将类作为第一个参数。 可以从实例和类本身中调用类方法。 所有这些都使用相同的方法。 该方法可以使用类变量和方法。 ## 示例 ### 类方法示例 要将方法转换为类方法,请在方法定义之前添加`@classmethod`。 该方法始终将类作为参数。 下面的示例定义了一个类方法。 然后,类本身可以使用该类方法。 在此示例中,类方法使用类属性名称。 ```py class Fruit: name = 'Fruitas' @classmethod def printName(cls): print('The name is:', cls.name) Fruit.printName() ``` 您可以同时使用对象和类的类方法: ```py apple = Fruit() berry = Fruit() Fruit.printName() apple.printName() berry.printName() ``` 现在,参数名称属于该类,如果您要通过使用对象来更改名称,它将忽略该参数。 但是,如果您要按班级进行操作,则它会更改,例如以下示例: ```py apple.name="Apple" Fruit.printName() apple.printName() berry.printName() Fruit.name="Apple" Fruit.printName() apple.printName() berry.printName() ``` ### 替代表示法 通常使用 pythonic 表示法,但这并不是严格要求的。 您也可以使用这样的类方法: ```py class Fruit: name = 'Fruitas' def printName(cls): print('The name is:', cls.name) Fruit.printAge = classmethod(Fruit.printName) Fruit.printAge() ``` ### 类方法与静态方法 类似于静态方法,类方法不需要实例化对象。 类方法与静态方法的不同之处在于,静态方法不了解类本身。 在类方法中,参数始终是类本身。 静态方法对类或实例一无所知。 您也可以使用函数调用。 类方法在调用该方法时获取该类。 它了解类的属性和方法。 ### 练习 类方法文章的练习: * 什么是类方法? * 类方法与静态方法有何不同? [下载示例](https://gum.co/HhgpI)