V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lxy42  ›  全部回复第 8 页 / 共 22 页
回复总数  431
1 ... 4  5  6  7  8  9  10  11  12  13 ... 22  
2018-08-30 11:16:34 +08:00
回复了 hackpro 创建的主题 问与答 Python Name Bind 问题
> 按照我自己的理解,如果 name bind 能够找到一个完全相同的 object,就不会重新创建一份 copy

这样做我觉得会有两个问题:
1. 在作用域中查找是否存在相同的 object 会带来性能问题。
2. Univs 和 Univs1 虽然看似值是相等的,但是它们是两个赋值过程,理应创建不同的 list。list 是可变类型,如果两者引用同一个 list,修改其中一个时会影响另外一个。
2018-08-30 11:07:47 +08:00
回复了 hackpro 创建的主题 问与答 Python Name Bind 问题
最近正在看《 Python 源码剖析》
#1 已经说到了几点,我补充一下:

- 小整数缓存机制,Python 内部会预先初始化一个小整数对象缓存池,范围是[-5, 256],在创建该范围内的整数时直接使用缓存池中的整数对象。

```
>>> a = 1
>>> id(a)
140706733650600
>>> b = 1
>>> id(b)
140706733650600
```

- 字符串缓存机制,空字符串会被缓存在 nullstring,长度为 1 的字符串(即 0 - 255 的字符)会缓存在长度为 256 的 characters 数组中,避免重复创建。长度超过 1 的字符串会缓存在 intered 的字典中。


```
>>> a = '^'
>>> id(a)
4466954032
>>> b = '^'
>>> id(b)
4466954032
>>>
```

- list 和 dict 也都有对应的缓存机制,当一个 list 或者 dict 销毁时,并不是真正的从内存中抹去,而是标记为“ free object ”,下次要创建 list 或者 dict 时,可以直接使用上次销毁的对象。

```
>>> a = [1, 2, 3]
>>> id(a)
4467181832
>>> del a
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> b = [1, 2, 3, 4]
>>> id(b)
4467181832
>>>
```
2018-08-28 11:03:00 +08:00
回复了 itskingname 创建的主题 分享创造 正则表达式 re.sub 替换不完整的问题现象及其根本原因
@rrfeng #6 请问蠢在哪里?
2018-08-28 11:02:26 +08:00
回复了 itskingname 创建的主题 分享创造 正则表达式 re.sub 替换不完整的问题现象及其根本原因
@itskingname #4
> 多个默认参数不带参数名的时候,按顺序从左侧填写

“按顺序从左赋参”难道不是很符合直觉的做法吗?

> 很多编程语言里面常量都会使用一个数字并赋值给一个大写变量来表示

用整数表示常量也是很普遍的做法啊。


你这个明显就是不熟悉函数用法导致的错误,跟库本身一点关系都没有。
2018-08-24 17:24:58 +08:00
回复了 lxy42 创建的主题 编程 这两种“移除单向链表中指定元素”的代码,你觉得那个更好?
@xuanbg #6 算法是这样没错,我的重点是讨论这两种具体的实现方式。
2018-08-22 17:39:50 +08:00
回复了 mili8908 创建的主题 Python Python 保留小数后精度问题
Q. In a fixed-point application with two decimal places, some inputs have many places and need to be rounded. Others are not supposed to have excess digits and need to be validated. What methods should be used?

A. The quantize() method rounds to a fixed number of decimal places. If the Inexact trap is set, it is also useful for validation:

>>>
>>> TWOPLACES = Decimal(10) ** -2 # same as Decimal('0.01')
>>>
>>> # Round to two places
>>> Decimal('3.214').quantize(TWOPLACES)
Decimal('3.21')
2018-08-17 10:34:55 +08:00
回复了 mimzy 创建的主题 Python 关于使用 __new__ 方法创建带锁的单例模式可能产生的问题
仅供参考: https://gist.github.com/ausaki/46ec0fec6a5d3684437380a9b21e5b13

在元类中实现单例,__init__方法只会调用一次。
2018-08-17 10:14:30 +08:00
回复了 mimzy 创建的主题 Python 关于使用 __new__ 方法创建带锁的单例模式可能产生的问题
关于类的创建、实例的创建和实例初始化,需要掌握一点元类的知识。

Singleton.__new__方法负责创建实例,然后 Python 内部尝试调用__init__方法初始化实例。因此,如果 Singleton 的子类定义了__init__方法,每次创建实例后 Python 都会调用__init__方法初始化实例,如果没有找到__init__方法,Python 就会一直往父类查找__init__,直至 object 为止。
2018-08-16 18:06:37 +08:00
回复了 lxy42 创建的主题 问与答 推荐大家一个字幕下载工具(subfinder),简单好用!
update:

v1.0.4
- 新增 zimuzu 字幕搜索器。
- 优化代码。
2018-08-15 10:27:59 +08:00
回复了 lxy42 创建的主题 编程 这两种“移除单向链表中指定元素”的代码,你觉得那个更好?
@thinkmore #4
下面是我对你的算法写的伪代码:

```
remove_list_entry(entry){
walk = head;

while(walk != entry)
walk = walk->next;

if(walk->next != NULL){
walk->val = walk->next->val;
walk->next = walk->next->next;
}else{
// 移除末尾元素
// 为了移除末尾元素,似乎还是需要用一个变量保存前一个节点
// prev->next = NULL
}
}
```
2018-08-15 10:07:14 +08:00
回复了 lxy42 创建的主题 编程 这两种“移除单向链表中指定元素”的代码,你觉得那个更好?
@thinkmore #1 我不太理解你的解法,假如要移除 b 呢,应该怎么做?
2018-08-15 09:58:28 +08:00
回复了 lxy42 创建的主题 编程 这两种“移除单向链表中指定元素”的代码,你觉得那个更好?
@thinkmore #1 你可以看一下原视频,或许对理解第二种方法有点帮助。
这里的第二种方法使用的 indirect 变量是一个指向节点( Node )中 next 的指针,所以实际上 indirect 的类型是 Node**。所以当找到需要移除的节点时,直接更新 indirect 的值就可以了。
2018-08-13 09:29:51 +08:00
回复了 lxy42 创建的主题 问与答 推荐大家一个字幕下载工具(subfinder),简单好用!
@alvin666 #3

v1.0.3

- 优化 zimuku 字幕搜索器。

- 內建 unrar.exe ,windows 用户不用安装 unrara 了。
2018-08-10 23:17:56 +08:00
回复了 lxy42 创建的主题 问与答 推荐大家一个字幕下载工具(subfinder),简单好用!
@alvin666 #3 其实原理都一样,尽量从视频文件名提取出有用的关键词,然后提供给 zimuku 的搜索接口。

如何提取关键词主要取决于 zimuku 的搜索接口。

现在我提取的信息有:

- 视频标题(作为关键词搜索)

- 季数和集数

- 分辨率

- 压制格式

- 视频编码和音频编码

等等。
2018-08-10 22:58:27 +08:00
回复了 lxy42 创建的主题 问与答 推荐大家一个字幕下载工具(subfinder),简单好用!
@alvin666 #1 python 自带的 zipfile 模块可以解压 zip 压缩包。rar 的话需要系统的 PATH 包含 unrar 命令。
1. 前沿数控说自己两年多的运营数据全部丢失,可是它是从 2017 年 12 月份开始使用腾讯云的,这说明大部分数据在使用腾讯云之前就已经存在了,后来迁移至腾讯云。这部分数据难道也没有本地备份。
2. 由于硬盘固件故障导致数据丢失,可是如果腾讯云有备份的话,至少可以恢复发生故障之前的数据。难道此次故障影响到所有的备份硬盘。


作为一家“千万级别”的公司,7 个月花在云服务上的钱才 3569 元,说出来你敢信!

总之即使是使用云服务,自己还是要做好备份。
2018-08-02 09:15:08 +08:00
回复了 lxy42 创建的主题 Python 最近抽空造了一个数据校验的轮子 Python -validator
@conn4575 #12 你说的是 Django-restfulframework 的 serializer 吗? serializer 其实和 Django 自带的 forms 表单验证是类似的,多了反序列化功能。

schema 我也看了一下,感觉描述数据约束的方式不够优雅和直观。

python-validator 支持嵌套的。使用 DictField 就行了,文档在这里 https://ausaki.github.io/python-validator/fields/#dictfield。
2018-07-31 10:57:04 +08:00
回复了 lxy42 创建的主题 Python 最近抽空造了一个数据校验的轮子 Python -validator
@ebingtel #10 如果在使用过程中遇到问题欢迎提交 issue。
2018-07-30 16:42:27 +08:00
回复了 lxy42 创建的主题 Python 最近抽空造了一个数据校验的轮子 Python -validator
@d18 #8 刚看了一下这个库,是有点类似。
2018-07-30 15:30:19 +08:00
回复了 lxy42 创建的主题 Python 最近抽空造了一个数据校验的轮子 Python -validator
@Trim21 #2 我当初考虑到了这个情况,将 strict 设为 False 就会尝试进行类型转换了。

同理,StringField 也可以允许非字符串类型的数据,只要可以转换成字符串。
1 ... 4  5  6  7  8  9  10  11  12  13 ... 22  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2552 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 02:36 · PVG 10:36 · LAX 18:36 · JFK 21:36
Developed with CodeLauncher
♥ Do have faith in what you're doing.