一、模块化设计(对比Java包)
-
模块是什么:
- 一个
.py文件即模块(如utils.py) - 包含函数的集合(类似Java的静态工具类)
- 一个
-
导入方式:
# 导入整个模块(类似Java的import com.utils.*)
import utils
utils.encrypt(data)
# 导入特定函数(类似Java静态导入)
from utils import encrypt
encrypt(data)
二、类与self的本质(对比Java的this)
核心代码对比:
# Python
class User:
def __init__(self, name):
self.name = name # self指向当前实例
def login(self):
print(f"{self.name} logged in")
// Java
public class User {
private String name;
public User(String name) {
this.name = name; // this指向当前实例
}
public void login() {
System.out.println(this.name + " logged in");
}
}
关键差异:
self是显式传递的实例引用(Python自动填充)- 方法定义必须声明
self参数(Java的this隐式存在)
三、JVM与Python解释器对比
| 特性 | JVM | Python解释器 |
|---|---|---|
| 执行模式 | 编译字节码 + JIT优化 | 解释执行 + 字节码缓存(.pyc) |
| 跨平台 | "Write Once, Run Anywhere" | 依赖解释器版本 |
| 内存管理 | 分代垃圾回收 | 引用计数 + 分代GC |
| 多语言支持 | Java/Scala/Kotlin | 主攻Python(可通过C扩展) |
转型建议:
- 理解动态类型:Python无需声明变量类型(
name = "Alice")- 善用魔术方法:
__str__替代Java的toString()- 模块化优先:用包组织代码而非过度设计类层次结构
四、结束语
学习比较到此结束,希望对你有用。