1
imlonghao 2015-02-20 20:08:57 +08:00 1
在 Python 中万物皆对象。字符串是对象。列表是对象,函数是对象,甚至模块也是对象。
摘抄自: http://woodpecker.org.cn/diveintopython/getting_to_know_python/everything_is_an_object.html |
2
timonwong 2015-02-20 20:09:08 +08:00 2
|
3
publicID123 2015-02-20 20:09:09 +08:00 via Android
唔,再次体会到 js 的 object 表达力相当强。
|
4
publicID123 2015-02-20 20:16:53 +08:00 via Android 1
但是这个可以直接用 python 的字典即可。
|
5
zerh925 2015-02-20 20:38:25 +08:00 2
p = {}
p = {'x':1, 'y':2, 'v':{'x':3, 'y':4}} p['x'] p['y'] p['v']['x'] p['v']['y'] |
6
ruoyu0088 2015-02-20 20:40:19 +08:00 1
|
7
est 2015-02-20 20:40:20 +08:00 via Android 1
js的对象。。。其实叫Hash或者dict
|
8
ruoyu0088 2015-02-20 20:40:37 +08:00
|
9
wartime 2015-02-20 20:47:20 +08:00 1
p = type('P', (object,), {})()
p.x = 1 p.y = 2 p.v = type('P', (object,), {})() p.v.x = 3 p.v.y = 4 |
10
BlackKey 2015-02-21 00:33:40 +08:00
用字典吧
或者要让字典可以类似js,用p['x']和p.x两种访问方式的话可以这样 class ObjectDict(dict): def __getattr__(self, name): try: return self[name] except KeyError: raise AttributeError(name) def __setattr__(self, name, value): self[name] = value p = ObjectDict() p.x = 1 p.y = 2 p.v = ObjectDict() p.v.x = 3 p.v.y = 4 |
11
Wicked 2015-02-21 10:52:14 +08:00 via iPhone
既然用python,就要用python的思维来思考,要pythonic。这个原则对所有语言都是一样的。如果仅仅是翻译js,为啥不直接用js呢。建议楼主还是搞本python的教科书,认真撸一遍吧,只需2,3天的时间,将来受用不尽。
PS:通常问这种初心的问题会被人喷死的,有这时间直接看书早就解决了。这是职业程序员的素养 |