摘要:
一、eval() 1. 描述 eval()执行一个字符串,返回表达式的值。 2. 语法 eval(expression[, globals[, locals]]) expression:表达式 globals:变量作用域,全局命名空间(存放全局变量),如果被提供,必须是字典。 locals:变量作用 阅读全文
摘要:
一、问题 你想要扩展函数中的某个闭包,允许它能访问和修改函数的内部变量。 二、解决方案 通常,闭包的内部变量对外界是完全隐藏的。但可以编写访问函数,将其作为函数属性绑定到闭包上来实现访问。 def sample(): n = 0 # 闭包函数 def func(): print('n=', n) # 阅读全文
摘要:
一、描述 fromkeys() 用于创建一个新字典。 以序列seq中元素做字典的键,value为值。 二、语法、参数 dict.fromkeys(seq[, value]) seq:字典键值列表。 value:字典的值。 返回值:新字典。 三、实例 seq = ('wangke', 'wangyan 阅读全文
摘要:
一、无处不在的__dict__ 类的__dict__、类对象的__dict__。 class A(): a = 0 b = 1 def __init__(self): self.a = 2 self.b = 3 def test(self): print('a normal func.') @sta 阅读全文
摘要:
一、单继承 在单继承中,主要用来调用父类的方法。 class A: def __init__(self, n): self.n = 2 def add(self, m): print('self is {0} @A.add'.format(self)) self.n += m class B(A): 阅读全文
摘要:
一、问题 lambda 函数在定义时绑定值。 二、解决方案 lambda 表达式的 x 是一个自由变量,在运行时绑定值,不是定义时绑定值,这跟函数的默认值参数定义是不同的。 **实例:**a(10) 和 b(10) 的结果是 20 和 30吗? x = 10 a = lambda y: x+y x 阅读全文
摘要:
一、问题 定义有默认参数的函数。 二、解决方案 直接在函数定义中给参数指定默认值。 def test(a, b=2): print(a, b) test(1) test(1, 3) 输出: 1 2 1 3 默认参数是可修改的容器,如:列表、字典、集合,可以用 None 作为默认值。 def test 阅读全文
摘要:
输出类的实例化对象: class Name: name = 'wangke' name = Name() print(name) 结果: <__main__.Name object at 0x0000026D9B2BF508> print(name),等同于执行 print(name.__repr_ 阅读全文
摘要:
一、问题 如果不使用for循环遍历可迭代对象的元素,可用 next() 代替。 二、解决方案 1. 描述 next() :返回迭代器的下一个项目。 next() 要和生成迭代器的 iter() 一起使用。 2. 语法 next(iterable[, default]) 参数: iterable:可迭 阅读全文
摘要:
一、问题 通过名字访问元组。 二、解决方案 collections.nametuple :nametuple(名称+元组),命名元组,使元组除了使用索引访问还可以使用名称访问。 两个参数:第一个是类名,第二个是类的各个字段名。 from collections import namedtuple P 阅读全文