Python基础:这4个知识点,新手也能秒上手

23 阅读2分钟

一、装饰器入门:给函数加buff不改动源码

概念:

不修改函数代码,为函数添加额外功能(如计时、日志)的工具。

语法:

def 装饰器名(func):
    def 内层函数(*args, **kwargs):
        # 额外功能代码
        result = func(*args, **kwargs)
        return result
    return 内层函数

 

代码示例:

def timer(func):
    import time
    def wrapper(*args):
        start = time.time()
        res = func(*args)
        print(f"函数耗时:{time.time()-start:.2f}s")
        return res
    return wrapper

@timer  # 给函数加装饰器
def add(a, b):
    return a + b

add(100, 200)  # 输出:函数耗时:0.00s

 

二、生成器:省内存的迭代神器

概念:

动态生成数据,迭代时才产生元素,不占用大量内存。

语法:

  • 生成器表达式: (表达式 for 变量 in 可迭代对象) 
  • 生成器函数:用 yield 返回元素

代码示例:

# 生成器表达式
gen = (x*3 for x in range(5))
for num in gen:
    print(num)  # 输出:0 3 6 9 12

# 生成器函数
def fib(n):
    a, b = 0, 1
    for _ in range(n):
        yield a
        a, b = b, a+b

for val in fib(5):
    print(val)  # 输出:0 1 1 2 3

 

三、匿名函数lambda:一行搞定简单逻辑

概念:

无函数名的临时函数,仅能写简单表达式,适合临时使用。

语法:

 lambda 参数: 表达式 (返回表达式结果)

代码示例:

# 单独使用
add = lambda x, y: x + y
print(add(3, 5))  # 输出:8

# 结合sorted使用
lst = [(1,3), (2,1), (3,2)]
# 按元组第二个元素排序
sorted_lst = sorted(lst, key=lambda x: x[1])
print(sorted_lst)  # 输出:[(2,1), (3,2), (1,3)]

 

四、with语句:自动管理资源不翻车

概念:

自动完成资源的打开与关闭(如文件、网络连接),避免资源泄露。

语法:

 with 资源对象 as 别名: 操作代码 

代码示例:

# 常规文件操作(需手动关闭)
f = open("test.txt", "w")
f.write("hello")
f.close()

# with语句操作(自动关闭)
with open("test.txt", "w") as f:
    f.write("python")

# 读取文件验证
with open("test.txt", "r") as f:
    print(f.read())  # 输出:python