Python 类

  1. 面向对象编程介绍
  2. Python 类和对象
  3. Python 类构造方法
  4. 删除类的属性

我们将在本节中讨论 Python 面向对象编程(OOP)的基础知识,比如类、对象等。

Python 是一种面向对象的编程,换句话说,Python 中的所有的东西都是一个对象。

面向对象编程介绍

面向对象编程(OOP)的基础包括以下术语,以后我们会经常在学习和使用中提到

  1. 数据成员
  2. 方法
  3. 对象
  4. 构造函数
  5. 方法重载
  6. 运算符重载
  7. 继承
  8. 类实例和实例化

Python 类和对象

类可以被认为是对象的轮廓,而对象是数据成员和成员函数的集合。类包含可以使用该类的对象来访问的数据成员(变量)和成员函数(方法)。

新建一个类

可以使用 class 关键字以及后面加类的名字来新建一个类。语法如下,

class NameofClass:
    #data members of the class
    #member functions of the class

举例如下,

>>> class Waiter:
	name = "Andrew"
	def display():
		print('Waiter Class')	
>>> print(Waiter.display)
<function Waiter.display at 0x0359E270>
>>> print(Waiter.name)
Andrew

在上例中,新建了一个名叫 Waiter 的类,它包含了一个成员变量 name 以及一个成员方法 display()

新建一个类的对象实例

你可以通过下面的语句来新建一个类的对象示例,

obj = className()

举个例子,

>>> w = Waiter()
>>> print(w.name)
Andrew
>>> w.display()
Waiter Class

你可以看到,Waiter 类的对象实例可以通过点运算符 . 来访问类的成员(属性)。

类属性

除了数据成员和成员函数之外,类还有一些 Python 的内置属性。

  1. __dict__:包含类的命名空间的字典。
  2. __doc__:类的文档说明
  3. __name__:类的名称
  4. __module__: 定义类的所在模块
  5. __bases__: 包含基础类的元组

这些属性可以通过 . 来访问。

举例说明一下,

>>> class Waiter:
	"This is a waiter class"
	name="Andrew"
	def display():
		print("You are in waiter class")
>>> w = Waiter()

>>> print(w.__doc__)
This is a waiter class

>>> print(w.__dict__)
{}

>>> print(w.__module__)
__main__

Python 类构造方法

Python 类可以通过 __init__() 方法来进行构造,这个内置的方法是当对应类的对象被新建时被自动调用的特殊方法。构造方法基本上是用来初始化类的成员数据。

>>> class Waiter:
        def __init__(self, n):
            self.name=n
            self.age=20
        def display(self):
            print(self.name)

>>> w=Waiter('Rob')
>>> w.display()
Rob

上例中,self 参数会在构造方法定义以及其他类方法中使用。你可以这样来看待,当你调用 w.display() 方法时,它会被解释为 Waiter.display(w)

删除类的属性

你可以通过 del 来删除类对象实例中的属性。

>>> w=Waiter('Rob')
>>> w.__dict__
{'name': 'Rob', 'age': 20}
>>> del w.age
>>> w.__dict__
{'name': 'Rob'}