节选:
与 PHP 类似,带 $ 可以用关键词命名变量:
> $while = 4
> $while
4
而用 self 则不允许:
> self.while = 3
(..•˘_˘•..) File "<STDIN>", line 1:6, unexpected token "WHILE"
self.while = 3
^
> self.while
(..•˘_˘•..) File "<STDIN>", line 1:6, unexpected token "WHILE"
self.while
应变属性( attr )相关语法对应 Python 中的 @property 和 setter 。这里起名“应变属性”是因为 attribute 和 property 的含义区别很微妙,暂时未找到合适中文与类型内一般属性变量作区分,于是用功能特点命名。下图左边为木兰,右边为 Python 同功能代码,重点在三个 attr 。这部分功能未发现可代替的 self 语法。
作为未参与木兰原始设计的第三方,仅从复现出的功能很难完全领会设计意图。就个人感觉,木兰的 $ 相关语法设计简化了 Python 的 self 相关语法。对 self 的语义拓展虽然看似信手拈来但也有合理之处。是否对多线程有特别好处待研究。
请赐教。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.