随笔分类 - python
摘要:第17条:在参数上面迭代是,要多加小心 def read_visits(data_path): with open(data_path) as f: for line in f: yield int(line) visits = read_visits("./my_numbers.txt") pri
阅读全文
摘要:建议61:使用更为安全的property property是用来实现属性可管理性的built-in数据类型。它实际上是一种实现了__get__(), __set__()方法的类,用户也可以根据自己的需要定义个性化的property,其实质是一种特殊的数据描述符(数据描述符:如果一个对象同时定义了__
阅读全文
摘要:建议34:str()和repr()的区别 1)两者之间的目标不同:str()主要面向用户,其目的是可读性,返回形式为用户友好性和可读性都较强的字符串类型;而repr()面向的是python解释器,或者说开发人员,期目的是准确性,其返回值表示python解释器内部的含义,常作为编程人员debug用途。
阅读全文
摘要:建议2:编写pythonic代码 (1)要避免劣化代码 1)避免只用大小写来区分不同的对象 2)避免使用容易引起混淆的名称 3)不要害怕过长的变量名 (2)深入认识python有助于编写pythonic代码 使用PEP8来检查代码规范 pip install -U pep8 (python3改为pi
阅读全文
摘要:类的初始化和创建:__init__ 、__new__ 方法一: class MyLover: __instance = None __is_first_init = False def __new__(cls, *args, **kwargs): if not cls.__instance: MyL
阅读全文
摘要:和另一个系统进行对接,使用activemq进行消息通信。对方使用java客户端监听一个topic,我们需要发送TextMessage消息,对方接收后进行处理。而我们因为系统架构的原因只能使用python进行推送,也就只能通过stomp协议发送消息。然后就遇到了问题,发送的消息在java消费者端只能解
阅读全文
摘要:''' Table(data, colWidths=None, rowHeights=None, style=None, splitByRow=1, repeatRows=0, repeatCols=0, rowSplitRange=None, spaceBefore=None, spaceAfte
阅读全文
摘要:https://www.cnblogs.com/pyspark/articles/8819803.html
阅读全文
摘要:❶ 如果没传入 passengers 参数,使用默认绑定的列表对象,一开始 是空列表。 ❷ 这个赋值语句把 self.passengers 变成 passengers 的别名,而没 有传入 passengers 参数时,后者又是默认列表的别名。 ❸ 在 self.passengers 上调用 .re
阅读全文
摘要:元组与多数 Python 集合(列表、字典、集,等等)一样,保存的是对象 的引用。 如果引用的元素是可变的,即便元组本身不可变,元素依然 可变。也就是说,元组的不可变性其实是指 tuple 数据结构的物理内 1容(即保存的引用)不可变,与引用的对象无关。 >>> t1 = (1, 2, [30, 4
阅读全文
摘要:解析源码中的装饰器时,Python 把被装饰的函数作为第一个参数传给装 饰器函数。那怎么让装饰器接受其他参数呢?答案是:创建一个装饰器 工厂函数,把参数传给它,返回一个装饰器,然后再把它应用到要装饰 的函数上。不明白什么意思?当然。下面以我们见过的最简单的装饰器 为例说明: registry = s
阅读全文
摘要:clock 装饰器 def clock(func): @functools.wraps(func) def clocked(*args, **kwargs): t0 = time.perf_counter() result = func(*args, **kwargs) elapsed = time
阅读全文
摘要:在示例 7-4 中,我们定义并测试了一个函数,它读取两个变量的值:一 个是局部变量 a,是函数的参数;另一个是变量 b,这个函数没有定义 它。 示例 7-4 一个函数,读取一个局部变量和一个全局变量 >>> def f1(a): ... print(a) ... print(b) ... >>> f
阅读全文
摘要:装饰器的一个关键特性是,它们在被装饰的函数定义之后立即运行。这 通常是在导入时(即 Python 加载模块时),如示例 7-2 中的 registration.py 模块所示。 示例 7-2 registration.py 模块 registry = [] def register(func): p
阅读全文
摘要:装饰器是可调用的对象,其参数是另一函数(被装饰的函数),装饰器可能会处理被装饰的函数,然后把它返回,或者将其替换成另一个函数或可调用对象。 假如有个名为 decorate 的装饰器: @decorate def target(): print('running target()') 上述代码的效果与
阅读全文
摘要:global可以在任何地方修饰变量,而且被global修饰的变量直接被标识为全局变量,对该变量修改会影响全局变量的值,但不影响函数中未被global修饰的同名变量(依然是局部变量),nonlocal只能在嵌套函数(可能还有其他的地方,我还没有检查)中使用,用于标识嵌套函数中的变量是包含该嵌套函数的函
阅读全文
摘要:globals() 返回一个字典,表示当前的全局符号表。这个符号表始终针对当前 模块(对函数或方法来说,是指定义它们的模块,而不是调用它们的模 块)。 promos = [globals()[name] for name in globals() ➊ if name.endswith('_promo
阅读全文
摘要:operator模块 在函数式编程中,经常需要把算术运算符当作函数使用。例如,不使用 递归计算阶乘。求和可以使用 sum 函数,但是求积则没有这样的函数。 我们可以使用 reduce 函数(5.2.1 节是这么做的),但是需要一个函数 计算序列中两个元素之积。示例 5-21 展示如何使用 lambd
阅读全文
摘要:Python 3 提供了一种句法,用于为函数声明中的参数和返回值附加元数据。二者唯一的区别在第一行。 示例 5-19 有注解的 clip 函数 def clip(text:str, max_len:'int > 0'=80) -> str: ➊ """在max_len前面或后面的第一个空格处截断文本
阅读全文
摘要:不仅 Python 函数是真正的对象,任何 Python 对象都可以表现得像函数。为此,只需实现实例方法 __call__。 示例 5-8 实现了 BingoCage 类。这个类的实例使用任何可迭代对象构建,而且会在内部存储一个随机顺序排列的列表。调用实例会取出一个元素。 示例 5-8 bingoc
阅读全文

浙公网安备 33010602011771号