1
shyling 2016-11-23 20:10:04 +08:00 via iPhone 1
没看懂你在说什么
|
4
Ouyangan 2016-11-23 20:29:06 +08:00 1
我也没懂楼主在说什么
|
5
fyl00 2016-11-23 20:31:47 +08:00 1
哈哈哈哈,果然只有新手能看懂新手的疑惑啊。我最近写工具的时候也有这个疑惑。
class A(): |
6
jimzhong 2016-11-23 20:37:08 +08:00 1
不要使用 self.<属性>用来传递临时的参数,除非参数是这个对象的属性。
我已经不懂我在说什么了 |
7
Guaidaodl 2016-11-23 20:38:38 +08:00 1
最好使用返回值和参数,尽量不要让函数运行结果依赖于外部状态。
|
8
uuuing 2016-11-23 20:42:11 +08:00 1
没太懂。。。
|
10
mandex 2016-11-23 20:47:17 +08:00 1
然而我并没有写过 python 。
我的看法是,公用的方法也就是要对外暴露的方法肯定是用参数和返回值的。 私有的方法之间可以互相用类属性,私有方法最终是为公有的方法服务的。 |
11
cuebyte 2016-11-23 20:50:02 +08:00 1
你说的跨方法访问,不过是一个类里的不同方法都能访问到类里的属性罢了。
凡是临时的可有可无的变量,都不要设置成类属性,用普通变量就好了。如果你学的是 java ,用 getter/setter 就不会想出这样的问题了。 你也可以了解一下函数式编程里的函数是怎么用的,就会对 function/method 有个比较清楚的认识了。 我也不知道自己在说什么了…… |
12
chaleaoch OP @mandex 那么我们举私有方法的例子,
像我之前用函数的方式做,跳进一个函数里面第一眼看参数,第二眼看返回值,这样就能基本确定这个函数的输入和输出是什么,阅读效率很高(目的性强)。 但是今天封了一个对象出来。各个私有方法之间用私有属性传递。功能实现了,。但是看着怪怪的。随着项目变大代码量增长岂不是阅读起来要乱套? 请指点。多谢啦! |
13
chaleaoch OP @cuebyte
我今天遇到的情况,用对象的属性来做确实方便。。。只是写完之后发现,如果过段时间再看,或者别人来看我写的东西,会觉得怪怪的,不知道是我看代码的方式怪还是我写的怪。 所以发出来想和前辈们请教下。 至于您说的函数式编程和 java 。。。 |
15
mandex 2016-11-23 21:01:51 +08:00 1
@chaleaoch 属性是描述对象特征的,他可以让各个方法共享数据,但他不是为了传递数据设计的。我觉得,如果一个属性和对象没有逻辑上的包含从属关系,就不适合写成属性。
|
17
vwok 2016-11-23 21:18:57 +08:00 1
要按照具体使用场景要看,可以想成一个银行账号,属性值表示余额
a1 方法就是看一下存进去一块钱之后,余额是多少 a2 方法就是真的存进去一块钱,做了这个操作 a3 就相当于是个计算器,算一下假如某个人有多少钱,加一块钱之后是多少 |
18
chaleaoch OP |