Python 如何重载?

2018-07-21 15:00:44 +08:00
 Cheez

我想要这样的效果:

ans.vote --> 返回数目 ans.vote() --> 赞同答案

可是具体操作时却这样: TypeError: 'NoneType' object is not callable

2867 次点击
所在节点    问与答
25 条回复
ipwx
2018-07-22 00:23:08 +08:00
@Cheez 如果我想拿 vote 这个函数对象怎么办?
Cheez
2018-07-22 02:39:05 +08:00
@ipwx 拿来好像也没什么用...
Cheez
2018-07-22 11:17:14 +08:00
因为问题始终无法解决,最后换成了这种写法:
```
def vote(self):
print('赞同他')
self.vote.__dict__['count'] = self._vote
return self

```
调用的时候:
```
print('方法')
print(Article('37208344').vote())
print('属性')
print(Article('37208344').vote.count)
```
@ipwx #21
@wangyongbo #19
@Trim21 #15
laike9m
2018-07-22 12:01:54 +08:00
这接口设计也是醉了,弄个叫 vote_count 的 property 不好么
Trim21
2018-07-22 13:14:35 +08:00
@Cheez …那为什么不写两个 class 呢…满足你最一开始的要求,还比现在这样好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/472907

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX