avatar
编程习惯问题# JobHunting - 待字闺中
c*r
1
一些编程习惯和同事意见不同,问问大家都是怎么做的
1. 比如Python,dictionary 名只是一个pointer,不论做不做输入变量还是输出变量
,只要在函数中改变这个dictionary了,函数外也变了,大家现在怎么处理的?就fly
around吗?
def change():
dict_a['key'] = 2
return
dict_a['key'] = 1
change()
print dict_a #output 2
2. python的return 大家用吗?还是像1那样,从来不用?
3. 大家还写comments吗?有同事说变量函数名字起长一些,就说明白了,不用
comments
avatar
x*9
2
1. copy.deepcopy (只是一种可行方案哈)
2. return为啥不用啊,你又不是scala
3. 理论上代码应该做到“自注释”。But,你懂,好多诡异的Logic你不说,别人是很
难了解清楚的。这个就看个人的素质了(哈哈),写的话,给人一种你比较认真的感觉
,不写的话, 别人碰到后就会来问题,可以提升个人的credit。这个在于权衡吧,我
一般是写清楚的。
avatar
s*x
3
一般来说,除非你有strong reason, just follow people's comments.
avatar
w*z
4
最好是immutable。

fly

【在 c*******r 的大作中提到】
: 一些编程习惯和同事意见不同,问问大家都是怎么做的
: 1. 比如Python,dictionary 名只是一个pointer,不论做不做输入变量还是输出变量
: ,只要在函数中改变这个dictionary了,函数外也变了,大家现在怎么处理的?就fly
: around吗?
: def change():
: dict_a['key'] = 2
: return
: dict_a['key'] = 1
: change()
: print dict_a #output 2

avatar
d*e
5
1.你需要学习python的scope.什么pointer啊。c语言出身?
2. C语言出身?
3. 多余。除非大的算法偶尔提一句,或者谢谢docstring.

fly

【在 c*******r 的大作中提到】
: 一些编程习惯和同事意见不同,问问大家都是怎么做的
: 1. 比如Python,dictionary 名只是一个pointer,不论做不做输入变量还是输出变量
: ,只要在函数中改变这个dictionary了,函数外也变了,大家现在怎么处理的?就fly
: around吗?
: def change():
: dict_a['key'] = 2
: return
: dict_a['key'] = 1
: change()
: print dict_a #output 2

avatar
h*2
6
写的烂的comments还不如不写,看起来特别痛苦还误导
avatar
c*r
7
看来还是好多人不写comments. 上学和在另一公司时都是强调comment should be
longer than code
第一个我可能没说清楚。 数据类型不能改,还有python虽然也谈scope, 但是我举的
例子scope意义不大。 函数里变了,函数外也变了。 这种情况是不是就完全没有必要
弄成输入输出变量了,和我code一样?这样的话如果有几百个函数,很难track变量吧
avatar
t*i
8
对于mutable 变量,Python的function pass in 的是parameter的reference,也没法
像JAVA定义成final, 所以没法避免被修改。

【在 c*******r 的大作中提到】
: 看来还是好多人不写comments. 上学和在另一公司时都是强调comment should be
: longer than code
: 第一个我可能没说清楚。 数据类型不能改,还有python虽然也谈scope, 但是我举的
: 例子scope意义不大。 函数里变了,函数外也变了。 这种情况是不是就完全没有必要
: 弄成输入输出变量了,和我code一样?这样的话如果有几百个函数,很难track变量吧

avatar
f*e
9
对于1, 感觉最好把dictionary作为函数变量传入,避免使用全局变量,你的意图会更
清晰一些。当然如果是在一个类内情况就不一样了,或者你把一个module当作一个类,
dict_a是其中的一个全局变量也可以像你的方式那样修改全局变量(即使那样,也需要
加一句global dict_a才能修改全局变量吧?)
def change(d):
d['key'] = 2
return d #you might comment this line
dict_a = change(dict_a)

fly

【在 c*******r 的大作中提到】
: 一些编程习惯和同事意见不同,问问大家都是怎么做的
: 1. 比如Python,dictionary 名只是一个pointer,不论做不做输入变量还是输出变量
: ,只要在函数中改变这个dictionary了,函数外也变了,大家现在怎么处理的?就fly
: around吗?
: def change():
: dict_a['key'] = 2
: return
: dict_a['key'] = 1
: change()
: print dict_a #output 2

avatar
c*r
10
你说的是我以前的概念。不过以前不是用python. 用pyrhon的话你写的和我原帖写的结
果完全一样,就是问问业界大家都是怎么处理的,你这么写麻烦但是直白,我那么写简
单,但是函数改了哪些变量不是很直白,尤其复杂函数

【在 f*******e 的大作中提到】
: 对于1, 感觉最好把dictionary作为函数变量传入,避免使用全局变量,你的意图会更
: 清晰一些。当然如果是在一个类内情况就不一样了,或者你把一个module当作一个类,
: dict_a是其中的一个全局变量也可以像你的方式那样修改全局变量(即使那样,也需要
: 加一句global dict_a才能修改全局变量吧?)
: def change(d):
: d['key'] = 2
: return d #you might comment this line
: dict_a = change(dict_a)
:
: fly

avatar
l*5
11
有字天书啊
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。