当前位置:首页>python>每周学一点:python常用语法和 工具(一)

每周学一点:python常用语法和 工具(一)

  • 2026-10-11 07:54:13
每周学一点:python常用语法和 工具(一)

最近一边啃 Python 基础,一边上手做 Agent 开发。过程中发现,很多看似零散的语法点,实际上在写 Agent 的时候频频出场。于是就一个个记了下来,现在正好串成一条线,分享出来。


1. 类(class):不是玄学,就是个"标签"

很多新手被"面向对象"四个字吓住。其实类说白了就是给对象贴标签——告诉 Python:"这个家伙是这一类,所以它天然拥有这些属性和方法"。

现实世界中,哺乳动物会产奶,鸟会下蛋——这是归纳出来的。Python 里的区别在于:你先定义一个类,然后期待同一类的对象都具备某些行为。

class MyClass:    i = 12345    def f(self):        return 'hello world'x = MyClass()print(x.i)   # 12345print(x.f()) # hello world

Agent 开发中怎么用? 后面会讲到的自定义异常、装饰器,都建立在类与函数的基础之上。


2. try:优雅地处理意外

和 if-else 类似,try-except 用来"预见不测"。finally 里的代码无论如何都会执行——关闭文件、释放连接这些操作,很适合放在里面。

try:    risky_operation()except ValueError as e:    print(f"值出错了:{e}")except (TypeError, KeyError):    print("类型或键出错")else:    print("一切正常")finally:    print("无论如何我都会执行")

还可以用 raise 主动触发异常测试逻辑,甚至自定义异常类(这时候第 1 点的 class 就派上用场了):

class NetworkError(RuntimeError):    passraise NetworkError("连接超时")

3. all():一键判断"全员合格"

all() 判断可迭代对象里的元素是否全部为真。元素除了 0、空、None、False 之外都算 True。

all([True, 1, "hello"])  # Trueall([True, 0, "hello"])  # Falseall([])                   # True(空的可迭代对象默认返回 True)

Agent 中经常用它做前置校验:"所有必需的 API 密钥都配好了吗?都配好了才往下走。"


4. join():比 + 号优雅的字符串拼接

用指定字符把序列里的每个元素串起来:

symbol = "-"seq = "hello"print(symbol.join(seq))  # h-e-l-l-owords = ["Agent", "开发", "实战"]print(" | ".join(words))  # Agent | 开发 | 实战

拼接多个字符串时,join() 比 + 可读性更好,性能也更优。


5. os.getenv():安全读取环境变量

写 Agent 必备技能——API Key、Base URL 这类敏感信息,不能直接写死在代码里。os.getenv() 从环境变量中读取,读不到还能设默认值:

import osapi_key = os.getenv('ARK_API_KEY', 'fallback_key')

6. os.environ:环境变量的"字典"视角

os.environ 本质上是一个字典对象,支持读取、设置、删除:

import osprint(os.environ["HOME"])       # 读取os.environ["MY_KEY"] = "value"  # 设置del os.environ["MY_KEY"]        # 删除

7. os.environ  vs  os.getenv():一个核心区别

os.environ[]os.getenv()
本质
字典对象
函数
变量不存在时
抛出 KeyError
返回 None

一句话总结:需要取值并兜底,用 getenv();需要像字典一样增删改查,用 environ。


8. 装饰器:不动原代码,悄悄加功能

装饰器是一个接收函数、内部定义子函数、最终返回函数的高阶函数。它最大的价值:不改原函数一行代码,就能增加前置/后置处理。

def decorator_function(original_function):    def wrapper(*args, **kwargs):        print("执行前")        original_function(*args, **kwargs)        print("执行后")    return wrapper@decorator_functiondef target_function():    print("Hello!")target_function()# 执行前# Hello!# 执行后

日志记录、权限校验、性能计时……这些横切关注点几乎都能用装饰器干净地抽离出来。

最新文章

随机文章