0.python中一切皆对象
1.map
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
2.print不换行
print '--------',3.指定解码用utf-8(以下代码添加到文件头部)
# -*- coding: utf-8 -*-4.运算
x = 2**10 # 幂运算2^105.pycharm高亮
# todo:6.匿名函数
sum = lambda arg1, arg2: arg1 + arg2 # 函数也是一个对象
print sum(10, 20) # 重载括号 输出307.变量
- strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
- 不可变类型:变量赋值 x=5 后再赋值 x=10,这种情况相当于生成了新的x 原来的5被丢弃了
- 可变类型:变量赋值list_x = [1,2,3] 后再赋值list_x = [1,2],这种list_x没有动,只是内部的一部分被修改了
8.函数的参数传递
- 不可变类型:类似c++的值传递,如整数、字符串、元组。如fun(x),传递的只是x的值,没有影响x对象本身。比如在 fun(x)内部修改x的值,只是修改另一个复制的对象,不会影响x本身。
- 可变类型:类似c++的引用传递,如列表、字典 。如fun(list_x),则是将list_x真正的传过去,修改后fun外部的list_x也会受影响
- 严格意义在python中我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。
9.作用域
- 全局变量想作用于函数内,需加 global
- python中的命名空间只有函数,不存在{}的命名空间
10.函数名
- 以单下划线开头_foo的代表不能直接访问的类属性
- 以双下划线开头的__foo代表类的私有成员
- 以双下划线开头和结尾的foo代表 Python 里特殊方法专用的标识,如init()代表类的构造函数。
11.生成器
- 斐波那契数列不获取fib函数的返回值
def fib(max): # 生成器函数 n,a,b =0,0,1 # 初始值 while n < max: # 循环 yield b # 函数执行到这里的时候会被记录下来,在调用x.next()的时候会继续执行 a,b =b,a+b # 斐波那契向后移动 n += 1 # 跳出循环的增量 x = fib(6) # 这就是一个生成器 每次只生成一个数值(不占用内存) for i in fib(6): # 变量生成器 print(i) # 打印生成器生产的值
12.装饰器
- 装饰器装饰函数,一般用于变量的校验&给传入对象添加属性
- @functools.wraps(func) 可以保证装饰器不会对被装饰函数造成影响
- 不带参数的装饰器,数字是函数执行的顺序
def debug(func): # 1装饰器的名字 传入函数 @functools.wraps(func) # 2可以保证装饰器不会对被装饰函数造成影响 def wrapper(*args, **kwargs): # 4获取被装饰函数的变量 pass # 5你已经拿到了变量,这里就可以处理对应相关的业务逻辑 return func(*args, **kwargs) # 6运行并返回被装饰的函数 return wrapper # 3执行装饰函数 @debug # 调用装饰器 def say(something): # 被装饰函数 pass # 被装饰函数业务逻辑 - 带参数的装饰器,数字是函数执行的顺序
def logging(level): # 1装饰器的名字 传入装饰器的参数 def wrapper(func): # 3传入被装饰函数 @functools.wraps(func) # 4可以保证装饰器不会对被装饰函数造成影响 def inner_wrapper(*args, **kwargs): # 6获取被装饰函数的变量 pass # 7你已经拿到了所有变量,这里就可以处理对应相关的业务逻辑 return func(*args, **kwargs) # 8运行并返回被装饰的函数 return inner_wrapper # 5执行内部装饰函数 return wrapper # 2执行装饰函数 @logging(level='INFO') # 调用装饰器 def say(something): # 被装饰函数 pass # 被装饰函数业务逻辑 @logging(level='DEBUG') # 调用装饰器 def do(something): # 被装饰函数 pass # 被装饰函数业务逻辑
文档更新时间: 2026-03-31 17:36 作者:morninglu
