Python面向对象编程基础:定义类与实例化

需积分: 0 0 下载量 143 浏览量 更新于2024-08-04 收藏 10KB DOCX 举报
"Python面向对象编程的基本概念和实践" 在Python编程中,面向对象编程(Object-Oriented Programming,简称OOP)是一种常用的设计模式,它允许我们将数据和操作数据的方法封装在一起,形成所谓的"对象"。在本篇中,我们将探讨Python中的面向对象编程基础,包括类的定义、实例化、属性以及访问限制。 首先,让我们来看一下如何定义一个类。在Python中,类是通过`class`关键字来创建的。以创建一个名为`Person`的类为例: ```python class Person(object): pass ``` 这里的`object`是所有Python类的基类,即使没有明确指定父类,也会默认继承自`object`。类名通常遵循驼峰命名法,即首字母大写,如`Person`。 创建实例是通过类名后面跟一对空括号来实现的,就像调用函数一样: ```python xiaoming = Person() xiaohong = Person() ``` 实例`xiaoming`和`xiaohong`在内存中是两个独立的对象,它们各自拥有不同的地址。 为了赋予实例具体的属性,如名字、性别和生日,我们可以直接给实例赋值: ```python xiaoming = Person() xiaoming.name = 'XiaoMing' xiaoming.gender = 'Male' xiaoming.birth = '1990-01-01' ``` 然而,这种方式并不理想,因为每次创建实例都需要手动设置这些属性。为了解决这个问题,我们可以利用`__init__`方法。`__init__`是一个特殊的方法,当创建实例时会自动调用,用于初始化实例的属性: ```python class Person(object): def __init__(self, name, gender, birth): self.name = name self.gender = gender self.birth = birth ``` `__init__`方法的第一个参数`self`代表实例本身,其他的参数(这里是`name`、`gender`和`birth`)可以在创建实例时传入: ```python xiaoming = Person('XiaoMing', 'Male', '1990-01-01') xiaohong = Person('XiaoHong', 'Female', '1990-02-02') ``` 这样,每次创建`Person`实例时,都会自动设置相应的属性。 最后,Python提供了访问限制来保护对象的内部状态。通过在属性名前加`_`或`__`,可以实现不同程度的保护。单下划线`_`表示“软私有”,一般约定不从外部直接访问,而双下划线`__`(如`__private`)表示真正的私有属性,只能在类的内部访问。不过Python并没有强制的访问控制,这种机制更多依赖于程序员的自觉性。 总结来说,Python的面向对象编程主要包括以下几个关键点: 1. 定义类:使用`class`关键字,通常继承自`object`。 2. 实例化:通过类名+()`创建实例。 3. 属性:直接给实例赋值或通过`__init__`方法初始化。 4. 访问限制:通过下划线来暗示属性的访问权限。 理解并掌握这些基本概念,将有助于你更好地进行Python的面向对象编程。