Python 类方法

Python 类方法

实例方法访问调用对象的实例变量,因为它获取调用对象的引用。但它也可以访问类变量,因为类变量是所有对象共享的。

Python有一个内置函数classmethod(),它将实例方法转换为类方法,只能使用类的引用而不是对象来调用。

语法

classmethod(instance_method)

示例

在Employee类中,用带有” self “参数(指向调用对象的引用)定义一个showcount()实例方法。它打印出empCount的值。接下来,将该方法转化为类方法counter(),可以通过类引用来访问。

class Employee:
   empCount = 0
   def __init__(self, name, age):
      self.__name = name
      self.__age = age
      Employee.empCount += 1
   def showcount(self):
         print (self.empCount)
   counter=classmethod(showcount)

e1 = Employee("Bhavana", 24)
e2 = Employee("Rajesh", 26)
e3 = Employee("John", 27)

e1.showcount()
Employee.counter()

输出

使用对象调用showcount(),使用类调用count(),都显示了员工计数的值。

3
3

使用 @classmethod() 装饰器是定义类方法的推荐方式,因为它比首先声明实例方法然后变换为类方法更方便。

@classmethod
def showcount(cls):
      print (cls.empCount)

Employee.showcount()

类方法充当替代构造函数。使用构建新对象所需的参数定义一个新的newemployee()类方法。它返回构造的对象,这是__init__()方法所做的事情。

@classmethod
   def showcount(cls):
         print (cls.empCount)
         return
   @classmethod
   def newemployee(cls, name, age):
      return cls(name, age)

e1 = Employee("Bhavana", 24)
e2 = Employee("Rajesh", 26)
e3 = Employee("John", 27)
e4 = Employee.newemployee("Anil", 21)

Employee.showcount()

现在有四个员工对象。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程