Python 类属性

Python 类属性

每个Python类都保留以下内置属性,并且可以使用点运算符访问,就像访问任何其他属性一样:

  • __dict__ - 包含类的命名空间的字典。

  • __doc__ - 类的文档字符串,如果未定义则为None。

  • __name__ - 类名。

  • __module__ - 定义类的模块名称。在交互模式下,此属性为”__main__“。

  • __bases__ - 可能是空的元组,包含基类的顺序。

对于上面的类,让我们尝试访问所有这些属性:

class Employee:
   def __init__(self, name="Bhavana", age=24):
      self.name = name
      self.age = age
   def displayEmployee(self):
      print ("Name : ", self.name, ", age: ", self.age)

print ("Employee.__doc__:", Employee.__doc__)
print ("Employee.__name__:", Employee.__name__)
print ("Employee.__module__:", Employee.__module__)
print ("Employee.__bases__:", Employee.__bases__)
print ("Employee.__dict__:", Employee.__dict__ )

它将产生以下 输出

Employee.__doc__: None
Employee.__name__: Employee
Employee.__module__: __main__
Employee.__bases__: (<class 'object'>,)
Employee.__dict__: {'__module__': '__main__', '__init__': <function Employee.__init__ at 0x0000022F866B8B80>, 'displayEmployee': <function Employee.displayEmployee at 0x0000022F866B9760>, '__dict__': <attribute '__dict__' of 'Employee' objects>, '__weakref__': <attribute '__weakref__' of 'Employee' objects>, '__doc__': None}

类变量

在上面的Employee类示例中,name和age是实例变量,因为它们的值可能对每个对象都不同。一个类属性或变量,其值在这个类的所有实例之间共享。类属性表示类的所有对象的通用属性。

类属性不在__init__()构造函数中初始化。它们在类中定义,但在任何方法之外。除了对象,它们还可以通过类名访问。换句话说,类属性对类和它的对象都可用。

示例

让我们在Employee类中添加一个名为empCount的类变量。对于每个声明的对象,__init__()方法会自动调用。这个方法不仅初始化实例变量,还将empCount增加1。

class Employee:
   empCount = 0
   def __init__(self, name, age):
      self.__name = name
      self.__age = age
      Employee.empCount += 1
      print ("Name: ", self.__name, "Age: ", self.__age)
      print ("Employee Number:", Employee.empCount)

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

输出

我们声明了三个对象。每次, empCount 增加1。

Name: Bhavana Age: 24
Employee Number: 1
Name: Rajesh Age: 26
Employee Number: 2
Name: John Age: 27
Employee Number: 3

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程