摘要:在本教程中,你将学习 Python 中的类和对象,以及如何定义一个新类。
对象
对象是一个容器,用于封装数据和功能。
数据表示对象在特定时刻的状态。因此,对象的数据被称为对象的状态。Python 使用属性来建模对象的状态。
功能表示对象的行为。Python 使用函数来建模对象的行为。当一个函数与对象相关联时,它就成为了对象的方法。
换句话说,对象是一个包含属性和方法的容器。
在创建对象之前,你需要先定义一个类,然后,你可以从该类中创建一个或多个对象。
一个类的对象也被称为该类的实例。
定义类
在 Python 中,要定义一个类,你需要使用 class
关键字,后跟类名和一个冒号。以下示例定义了一个 Person
类:
class Person:
pass
按照惯例,在 Python 中,类名通常使用大写字母开头(即遵循首字母大写命名规范)。如果类名包含多个单词,则使用驼峰命名法(CamelCase)格式,例如 SalesEmployee
。
由于目前定义的 Person
类还不完整,你需要使用 pass
语句来表明后续会为该类添加更多代码(pass
语句是一个空操作占位符,用于保持代码结构的完整性)。
要创建一个类的实例,你可以使用类名后跟一对圆括号的方式,如下所示:
person = Person()
当打印输出 person
对象时,你会看到它的名称(即类名标识的实例)以及对应的内存地址:
class Person:
pass
person = Person()
print(person)
输出:
<__main__.Person object at 0x000001C46D1C47F0>
要获取一个对象的身份标识(即唯一标识符),你可以使用 id()
函数。例如:
class Person:
pass
person = Person()
print(id(person))
输出:
1943155787760
对象的身份标识(id)是唯一的。在 CPython(Python 的主流实现版本)中,id()
函数返回的是对象在内存中的地址。hex()
函数可以将 id()
函数返回的整数值转换为一个以 0x:
为前缀的小写十六进制字符串:
class Person:
pass
person = Person()
print(hex(id(person)))
输出:
0x1c46d1c47f0
person
对象是 Person
类的一个实例。isinstance()
函数用于判断一个对象是否为某个类的实例,如果该对象是指定类的实例,则返回 True
:
class Person:
pass
person = Person()
print(isinstance(person, Person)) # True
输出:
True
在 Python 中,类也是一个对象
Python 中的一切皆为对象,包括类。
当你定义 Person
类时,Python 会创建一个名为 Person
的对象。这个 Person
对象具有属性。例如,你可以使用 __name__
属性来获取它的名称:
class Person:
pass
print(Person.__name__)
输出:
Person
Person
对象的类型是 type
。
class Person:
pass
print(type(Person))
输出:
<class 'type'>
Person
类也具有行为(功能)。例如,它可以创建一个新的实例:
class Person:
pass
person = Person()
总结:
对象是一个容器,它包含状态(数据)和行为(方法)。
类是用于创建对象的蓝图。
在 Python 中,类本身也是一个对象,它是
type
类的实例。