0%

Python 类和对象详解(Python 3.x)

Python 是一种面向对象的编程语言,类(Class)和对象(Object)是其核心概念。类是对象的模板,定义了对象的属性和方法;对象是类的实例,具有类所定义的特征和行为。本文将详细介绍 Python 中类和对象的创建、方法、变量、继承等核心特性。

类的定义与对象的创建

基本语法

使用 class 关键字定义类,类名通常采用帕斯卡命名法(首字母大写,如 Person)。通过类名加括号(无需 new 关键字)创建对象。

1
2
3
4
5
6
7
# 定义空类(pass 表示空代码块)
class Person:
pass

# 创建对象(实例化)
p = Person()
print(p) # 输出:<__main__.Person object at 0x...>(对象的内存地址)

类中的方法

类中的函数称为方法,与普通函数的区别是:方法的第一个参数必须是 self(表示对象自身,类似 Java 的 this)。调用方法时,self 由 Python 自动传递,无需手动传入。

1
2
3
4
5
6
7
8
9
class Person:
# 定义方法,第一个参数必须是 self
def say_hello(self):
print("Hello, I'm a Person!")

# 创建对象
p = Person()
# 调用方法(无需传递 self)
p.say_hello() # 输出:Hello, I'm a Person!

构造方法 __init__

__init__ 是 Python 的构造方法,用于对象初始化(创建对象时自动调用),相当于 Java 中与类名同名的构造函数。

基本使用

阅读全文 »

Python 变量作用域详解(Python 3.x)

变量作用域是指变量可被访问的代码范围。与 Java 等语言不同,Python 的变量作用域规则更灵活,尤其在全局变量和局部变量的区分上有特殊机制。本文将详细解析 Python 中变量的作用域类型、访问规则及修改全局变量的方法。

作用域的基本类型

Python 中变量的作用域分为以下四种,按访问优先级从高到低排列:

  1. 局部作用域(Local):在函数内部定义的变量,仅在函数内有效。
  2. 嵌套作用域(Enclosing):在嵌套函数外层的函数中定义的变量(适用于闭包场景)。
  3. 全局作用域(Global):在模块(.py 文件)顶层定义的变量,整个模块内可访问。
  4. 内置作用域(Built-in):Python 内置的变量或函数(如 printlen)。

局部变量(Local)

在函数内部定义的变量默认为局部变量,仅在函数执行期间存在,函数外部无法访问。

示例:局部变量的特性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 全局变量 x
x = 50

def function_local(x_param):
# 函数内部的 x 是局部变量(参数也是局部变量)
print(f"函数内初始 x(参数):{x_param}")
x_local = 2 # 局部变量
print(f"函数内修改后局部 x:{x_local}")

# 调用函数
function_local(x)

# 函数外部无法访问局部变量
print(f"函数外全局 x:{x}") # 输出:50(不受函数内局部变量影响)
# print(x_local) # 报错:NameError: name 'x_local' is not defined
阅读全文 »

Python 函数详解(Python 3.x)

函数是 Python 中组织代码的基本单元,用于封装可重用的逻辑。与 Java 的 “方法” 类似,但 Python 函数更灵活,支持默认参数、关键字参数、可变参数等特性。本文将全面介绍 Python 函数的定义、参数类型、返回值及模块使用。

函数的基本定义与调用

使用 def 关键字定义函数,语法为:

1
2
3
def 函数名(参数列表):
函数体(缩进代码块)
[return 返回值]

无参数函数

不接收参数的函数,直接执行预设逻辑:

1
2
3
4
5
6
# 定义无参数函数
def say_hello():
print("Hello, Python!")

# 调用函数(函数名后加括号)
say_hello() # 输出:Hello, Python!

带参数函数

接收输入参数,根据参数执行不同逻辑:

阅读全文 »

Python 字典(Dictionary)详解

在 Python 中,字典(Dictionary)是一种键值对(key-value) 结构的可变容器,类似于 Java 中的 Map 或 JavaScript 中的对象。它通过键(key)快速查找对应的值(value),是处理关联数据的核心数据结构。本文将详细介绍字典的创建、操作及常用方法。

字典的基本定义

字典使用大括号 {} 定义,键值对之间用逗号分隔,键与值用冒号 : 连接。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 基本字典(键为字符串,值为整数)
student = {'name': 'Alice', 'age': 20, 'major': 'Computer Science'}

# 键可以是任意不可变类型(如整数、字符串、元组)
mixed_dict = {
1: 'one', # 整数作为键
('a', 'b'): 123, # 元组作为键(元组不可变)
'list': [1, 2, 3] # 值可以是任意类型(包括列表、字典等)
}

# 空字典
empty_dict = {}
# 用 dict() 函数创建字典
another_dict = dict(name='Bob', age=21) # 等价于 {'name': 'Bob', 'age': 21}

注意

  • 键必须是不可变类型(如字符串、整数、元组),列表等可变类型不能作为键。
  • 键是唯一的,若重复定义,后面的键值对会覆盖前面的。

字典的核心操作

访问值(通过键)

通过 字典名[键] 访问对应的值,若键不存在则报错。

阅读全文 »

Python 列表(List)与元组(Tuple)详解

在 Python 中,列表(List)和元组(Tuple)是两种常用的序列类型,用于存储多个元素。它们的核心区别在于可变性:列表是可变的(元素可修改),而元组是不可变的(元素一旦创建就无法修改)。本文将详细介绍两者的用法、区别及适用场景。

列表(List):可变的序列

列表是 Python 中最灵活的序列类型,使用方括号 [] 定义,元素之间用逗号分隔,支持添加、删除、修改等操作。

基本定义与创建

1
2
3
4
5
6
# 空列表
empty_list = []
# 包含不同类型元素的列表(Python 列表支持异构元素)
mixed_list = [1, "apple", 3.14, True]
# 嵌套列表(列表中包含列表)
nested_list = [1, [2, 3], [4, [5, 6]]]

访问元素

通过索引(下标)访问元素,索引从 0 开始,支持负数索引(从末尾计数,-1 表示最后一个元素)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
fruits = ["apple", "banana", "cherry", "date"]

# 访问单个元素
print(fruits[0]) # 输出:apple(第一个元素)
print(fruits[-1]) # 输出:date(最后一个元素)

# 分片(切片):获取子列表,语法为 [start:end:step],左闭右开
print(fruits[1:3]) # 输出:['banana', 'cherry'](索引1到2的元素)
print(fruits[:2]) # 输出:['apple', 'banana'](从开头到索引1)
print(fruits[2:]) # 输出:['cherry', 'date'](从索引2到结尾)
print(fruits[::2]) # 输出:['apple', 'cherry'](步长为2,间隔一个元素)

# 复制列表(创建副本,修改副本不影响原列表)
fruits_copy = fruits[:]

# 获取元素对应索引
index = fruits.index(target)

修改元素

列表是可变的,可直接通过索引修改元素:

阅读全文 »