V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lihongjie0209  ›  全部回复第 67 页 / 共 78 页
回复总数  1543
1 ... 63  64  65  66  67  68  69  70  71  72 ... 78  
光看症状像吸毒一样
2018-04-24 08:54:36 +08:00
回复了 abcbuzhiming 创建的主题 全球工单系统 v2ex 的未读提醒是不是坏了几天
是的, 今天才发送昨天的消息
如果我一直访问这个页面, 你的服务器是不是就爆了?
2018-04-22 21:02:55 +08:00
回复了 simpleapples 创建的主题 Python 写了一篇关于 Python 参数传递的文章,请各位老铁指教
解决这个问题,推荐再参数传递可变对象时,默认值设置为 None,在函数内部对 None 进行判断后再赋予默认值。
def test(b=None):
b = b or []
b += [1]
print(b)

test() # [1]
test() # [1]
test() # [1]



这个做法也没有问题, 但是更好的办法是:

不要修改参数!!!!!


用的时候复制一份


def test(b=[]):
var = list(b)
var += [1]
print(var)

####################### 上面的是理论部分################################


####################### 实践部分 #####################################

def test(b=None):
b = b or []
b += [1]
print(b)


这种函数真的不会出现在实际代码中, 因为这个函数一点用的没有

函数大概分三种:

1. 无副作用的查询函数: getXXX(), queryXXX()

这种函数有个特点 : 他们都有返回值.

2. 有副作用的修改函数: list.sort()

这种函数有个特点: 他们会改变调用者 /参数的状态, 但是没有返回这


3. 混血: 既有返回值又有副作用:

比如你有一个函数: getUser(id), 会返回一个 User, 但是在调用的时候它把 User 的 queryCount 属性改变了


def test(b=None):
b = b or []
b += [1]
print(b)


这个函数首先没有返回值, 其次所有的状态都发生在函数作用域之内, 你调用完之后所有的状态都被销毁, 所以也没有副作用.

所有在生产环境中如果看到这种函数,请删了吧, 真的除了增加代码量一点用都没有.
2018-04-22 08:46:35 +08:00
回复了 php300 创建的主题 云计算 某某云已经被你们撸报废了!我靠 太厉害了
bug 云没个说法的话我就去隔壁了
2018-04-22 08:42:54 +08:00
回复了 php300 创建的主题 云计算 某某云已经被你们撸报废了!我靠 太厉害了
昨天晚上还有 300 代金券, 今天全没了
2018-04-21 18:47:15 +08:00
回复了 lihongjie0209 创建的主题 问与答 这就是一个 34760 Star 的 Javascript 库该有的表现?
@huijiewei #106 官方都放弃了, 我就不凑热闹了. 我的论点一直是: 一个 30000 多 start 的项目会有这种致命性的问题并且还有人用, 只能说很失望
2018-04-21 16:56:51 +08:00
回复了 uxstone 创建的主题 JavaScript moment.js 好用吗?
2018-04-20 17:30:05 +08:00
回复了 MrMike 创建的主题 程序员 有没有朋友在 WEB 项目中开发过预览 DWG 格式的文件模块?
2018-04-19 17:48:51 +08:00
回复了 FrankFang128 创建的主题 Node.js 我不是很懂 Node.js 社区的 DRY 文化
@Pastsong #55 最小化是有一个阈值的, 以函数为最小单位发包必定会导致依赖管理异常复杂.
2018-04-19 17:35:36 +08:00
回复了 FrankFang128 创建的主题 Node.js 我不是很懂 Node.js 社区的 DRY 文化
@lwbjing #67 这篇文章强调了一个函数的正确性和性能,但是却没有说明一个好的模块不是由一个函数组成的, 而是由一系列高级抽象组成的, 到最后只会导致越来越多的臃肿代码
2018-04-19 17:17:11 +08:00
回复了 FrankFang128 创建的主题 Node.js 我不是很懂 Node.js 社区的 DRY 文化
@woodensail #15 你确定 maven 中会有这种垃圾库并且还有人用??
2018-04-18 22:11:40 +08:00
回复了 GoPHP 创建的主题 程序员 据说优秀的代码没有 else?
感觉是最初版本必须有 else, 不然在条件复杂的情况下你可能漏掉一些情况.

也许在你加入单元测试之后, 然后可以把 else 重构掉, 这样最保险.
2018-04-16 20:57:00 +08:00
回复了 est 创建的主题 Python calibre(电子书管理工具)作者说:老子自己维护 Python 2 :doge:
@locktionc #8 图样图森破
1 ... 63  64  65  66  67  68  69  70  71  72 ... 78  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2136 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 52ms · UTC 04:14 · PVG 12:14 · LAX 21:14 · JFK 00:14
Developed with CodeLauncher
♥ Do have faith in what you're doing.