V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  geebos  ›  全部回复第 3 页 / 共 7 页
回复总数  139
1  2  3  4  5  6  7  
2021-03-16 13:30:46 +08:00
回复了 magichacker 创建的主题 问与答 求助!最近 GitHub 间歇性连不上
深受其害,所以我在 v2rayN 的基础上加了个定时检测,每十分钟检测一次,自动切换到能访问 github 的代理。
@drunkdog 意思是防止使用者用来干违法的事牵扯到自己吗
@ww2000e 比如有人搞了个破解软件,加了这个声明可以做到法律上免责吗?就算没有盈利破解软件还是给软件公司造成损失了吧。
2021-03-10 12:39:53 +08:00
回复了 yehx 创建的主题 Java 春招 Java 简历,求帮点评。
“了解数据库的引擎与相关事务”,如果我是面试官肯定要问一下事务,事务的实现,锁等等
2021-03-10 03:05:32 +08:00
回复了 lxl1531 创建的主题 Python Python 的字符串拼接函数 join()是怎么实现的
@geebos 补充一下,不仅仅是内存分配的时间,还有数据复制的时间
2021-03-10 03:04:26 +08:00
回复了 lxl1531 创建的主题 Python Python 的字符串拼接函数 join()是怎么实现的
for 循环慢是因为字符串在 python 里面是常量,每次创建一个新的字符串都要重新分配内存,所以使用 for 循环的话因为每次循环都要创建一个新的字符串,所以会花费很多时间在内存分配上。

如果自己实现的话,问题的关键就是如何避免重复分配内存。

可以遍历一遍字符串计算出需要的内存,一次分配好。或者像 #14 所说的每次把 buffer 翻倍,但是我觉得这样没必要,我们一般在所需内存不确定的时候才会使用这个方案,如果所需的内存是确定的话一次到位是更好地选择。
这个问题应该是 windows 的控制台默认编码是 gbk 的问题,改一下控制台编码就行。

实际你的结果已经没有问题了,只是包含有不能转成 gbk 编码的字符,所以在用 print 输出的时候会报错,保存到文件在看就是正常的了。

如果实在觉得膈应的话,可以用下面的代码把 gbk 不支持的字符全部过滤掉。

def encoding_transform(text:'str', target_encoding:'str')->str:
"""
将字符串转换成目标编码,不能被目标编码编码的字符全部舍弃
"""
if not isinstance(text, str):
return text

text_list = []
while True:
try:
text = text.encode(target_encoding).decode(target_encoding)
text_list.append(text)
break
except UnicodeEncodeError as e:
position = int(re.findall(r'position (\d+):', str(e))[0])
text_list.append(text[:position])
text = text[position+1:]
return ''.join(text_list)
2021-03-07 20:16:51 +08:00
回复了 geebos 创建的主题 分享创造 闲来无事用 pyqt 写了个 windows 上的启动台
@liuxey 我任务栏是隐藏的,磁贴没那么方便
2021-03-07 19:07:39 +08:00
回复了 geebos 创建的主题 分享创造 闲来无事用 pyqt 写了个 windows 上的启动台
@learningman emm,我用的是 Listary 。不过比起搜索启动,我更喜欢直接点击启动这种方式。
2021-02-25 21:25:29 +08:00
回复了 xuqiccr 创建的主题 宠物 迫于要有猫了,想知道大家的宠物都起的啥名
黑炭
2021-01-31 20:05:09 +08:00
回复了 louishwh 创建的主题 奇思妙想 5T 的书籍/电影/音乐资料,怎么检索比较好?
listary 了解一下
2021-01-11 19:44:23 +08:00
回复了 abersheeran 创建的主题 Python 六行代码实现 Python 管道
个人觉得可以写成装饰器

```python
from functools import partial

class F(partial):
def __init__(self, func):
self.__func = func

def __ror__(self, other):
if isinstance(other, tuple):
return self(*other)
return self(other)

def __call__(self, *args, **kwargs):
return self.__func(*args, **kwargs)

def pipefy(func):
return F(func)

```
我试了一下,第一种也是报错的
添加一个邀请码:哇咔咔德玛西亚
2021-01-02 13:10:00 +08:00
回复了 geebos 创建的主题 问与答 Go 为什么不能采用抛出错误的方式处理错误
@BeautifulSoap 你说的很对,可能我以前用 Python 习惯了,突然转到 Go 有点受不了。但我觉的这也不能算作 Go 的哲学,反而更像设计时没有考虑到。不只是错误处理,还有变量声明的语法(使用 var 的时候不能进行初始化)、返回值设置了名字之后还需要手动 return 等等。至少在语法和错误处理方面我没看到 Go 的哲学。
2020-12-31 22:57:41 +08:00
回复了 geebos 创建的主题 问与答 Go 为什么不能采用抛出错误的方式处理错误
@Vedar 但是我不能捕获 panic 啊,这就是问题所在了
2020-12-31 21:52:42 +08:00
回复了 geebos 创建的主题 问与答 Go 为什么不能采用抛出错误的方式处理错误
@BeautifulSoap 我的意思是 Java 异常可以自动向外层函数抛出,而 Go 还要手动返回。假如是三层函数调用,Go 每一层都要手动返回,不然外层的函数就收不到错误。而 Java 就不需要,只要中间的函数没有 catch 错误会继续往外层函数传递。
2020-12-31 18:23:57 +08:00
回复了 geebos 创建的主题 问与答 Go 为什么不能采用抛出错误的方式处理错误
@BeautifulSoap 我就是想用错误处理啊,但是 Go 没有。现在的方案全部要手动 wrap,一排代码下来,每一个函数调用都要写几行错误处理的代码,我心态炸了呀。
2020-12-31 18:08:55 +08:00
回复了 geebos 创建的主题 问与答 Go 为什么不能采用抛出错误的方式处理错误
@shoaly 什么 IDE,你是不是对 Java 有什么误解,throw 异常是 Java 做的,和 IDE 没关系。
2020-12-31 18:03:36 +08:00
回复了 geebos 创建的主题 问与答 Go 为什么不能采用抛出错误的方式处理错误
@shoaly 我指的不是这个,我的烦的是要手动处理和返回错误,Java 至少出错会自动抛出。
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5349 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 07:06 · PVG 15:06 · LAX 00:06 · JFK 03:06
Developed with CodeLauncher
♥ Do have faith in what you're doing.