第 8 章:模块、环境与 FAQ
import、venv 速览、从静态语言迁过来的高频坑。
01import
Python
import math
from math import sqrt
from math import sqrt as root
print(math.pi, root(9))
Kotlin
import kotlin.math.PI
import kotlin.math.sqrt
println("$PI ${sqrt(9.0)}")
ArkTS
import { PI } from './MathConst'; // 示意
import { sqrt } from './MathUtil';
02虚拟环境(必会)
每个项目一个隔离环境,避免全局包污染——类似「每个 App 模块自己的依赖」。
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install requests
deactivate
提交代码时通常提交
requirements.txt,不提交 .venv/。03脚本入口
Python
def main():
print("hi")
if __name__ == "__main__":
main()
Kotlin
fun main() {
println("hi")
}
ArkTS
function main(): void {
console.info("hi");
}
main();
__name__ == "__main__":直接运行本文件才执行;被 import 时不跑。04常见坑 FAQ
为什么改了 list 默认参数,下次调用脏了?
默认参数只求值一次。写成 def f(xs=None): xs = xs or []。
Kotlin 的 == 结构相等,Python 呢?
== 比的是值(可重载);is 比身份。判 None 用 is。
ArkTS / TS 的 === 要写成什么?
Python 没有三等号;类型不同通常 == 为 False(如 1 == "1")。
如何声明「不可变 list」?
用 tuple;或注解 Sequence / 运行期别改。没有 Kotlin List vs MutableList 的编译强制。
下一站读什么?
官方 Tutorial;需要类型护栏上 Pyright;Web API 再看 FastAPI;数据用 pandas 另开专题。