- 主题:python的动态性真是太爽了
defineproperty能根据某种规则动态生成属性吗
【 在 javaboy (喝了咖啡就话多-_-;) 的大作中提到: 】
: 可以做到的。
: Object.defineProperty
:
: 现在基本上所有的js运行环境都支持这个方法了。
--
FROM 163.125.82.*
我需要一个动态生存的字符串做属性,并根据属性的正则匹配分配不同的功能
【 在 eGust (十年) 的大作中提到: 】
: 就是一回事儿啊,js 的 meta programming 目前就只有 proxy
: 不过很可能你的需求用不上 proxy,甚至连 Object.defineProperty 可能都用不上,直接访问就完了
:
: 【 在 NGYxYmQ (>>>) 的大作中提到: 】
--
FROM 163.125.82.*
动态一时爽,调bug要死人
--
FROM 171.223.208.*
动态一时爽,一直动态一直爽。
这些语法特性用在某些地方不滥用时,经常能起到画龙点睛的作用。
【 在 zdx1314 (zzl) 的大作中提到: 】
: 动态一时爽,调bug要死人
--
FROM 112.47.122.*
我不明白动态语言的这种getattr特性有什么特别的好处。在静态语言里面完全可以用一个map表示,attr名字作为key。。动态语言这种用法有什么特别的好处吗?
动态语言的反射反而是相对静态语言比如c佳佳的一大优势。当然java也有反射,所以java就够了
【 在 NGYxYmQ 的大作中提到: 】
: 写了几天js,想搞个类似py __getattr__的东西 ,发现基本做不到
--
FROM 203.160.69.*
比如 mongodb 的一个库里,直接使用名称去获取库,获取 collection,看起来比较直观吧。
其他语言里使用 xxx.getDB("name")
python 使用 xxx.name
【 在 cutepig (聪明猪) 的大作中提到: 】
: 我不明白动态语言的这种getattr特性有什么特别的好处。在静态语言里面完全可以用一个map表示,attr名字作为key。。动态语言这种用法有什么特别的好处吗?
: 动态语言的反射反而是相对静态语言比如c佳佳的一大优势。当然java也有反射,所以java就够了
--
修改:world FROM 220.181.41.*
FROM 220.181.41.*
我比较常见的利用方式就是 JSONRPC
r = JSONRPC('
http://xxx.xxx.xxx.xxx')
r.some_function()
some_function 是无需预先定义的
【 在 cutepig (聪明猪) 的大作中提到: 】
: 我不明白动态语言的这种getattr特性有什么特别的好处。在静态语言里面完全可以用一个map表示,attr名字作为key。。动态语言这种用法有什么特别的好处吗?
: 动态语言的反射反而是相对静态语言比如c佳佳的一大优势。当然java也有反射,所以java就够了
--
FROM 114.242.94.*
虽然 proxy 的确可以实现,但是 js 世界里并不流行这种 meta programming
【 在 NGYxYmQ (>>>) 的大作中提到: 】
: 我需要一个动态生存的字符串做属性,并根据属性的正则匹配分配不同的功能
--
FROM 115.188.159.*
如果是异步过程,在 js 里不管写成 x.foo('bar') 还是 x.fooBar,总还是要 await 的。至于 mongodb,本来返回的就是 json,写成 c['foo'] 或者 c.foo 本来也没差别
另外 js 的 oo 模型跟其它语言不太一样,随便 obj.foo = bar,用 getter 本来就是脱裤子放屁的行为
【 在 world (You are my world) 的大作中提到: 】
: 比如 mongodb 的一个库里,直接使用名称去获取库,获取 collection,看起来比较直观吧。
: 其他语言里使用 xxx.getDB("name")
: python 使用 xxx.name
: ...................
--
FROM 115.188.159.*
你看错啦,我说的不是结果,是 client 获取 Database、database 获取 collection。
【 在 eGust (十年) 的大作中提到: 】
: 如果是异步过程,在 js 里不管写成 x.foo('bar') 还是 x.fooBar,总还是要 await 的。至于 mongodb,本来返回的就是 json,写成 c['foo'] 或者 c.foo 本来也没差别
: 另外 js 的 oo 模型跟其它语言不太一样,随便 obj.foo = bar,用 getter 本来就是脱裤子放屁的行为
--
FROM 220.181.41.*