有时候我们会碰到这样的需求,需要执行对象的某个方法,或是需要对对象的某个字段赋值,而方法名或是字段名在编码代码时并不能确定,需要通过参数传递字符串的形式输入。举个具体的例子:当我们需要实现一个通用的DBM框架时,可能需要对数据对象的字段赋值,但我们无法预知用到这个框架的数据对象都有些什么字段,换言之,我们在写框架的时候需要通过某种机制访问未知的属性。

此教程为我的数篇文章中的一个重点。主题是魔术方法。 什么是魔术方法?他们是面向对象的Python的一切。他们是可以给你的类增加”magic”的特殊方法。他们总是被双下划线所包围(e.g. __init__ 或者 __lt__)。然而他们的文档却远没有提供应该有的内容。Python中所有的魔术方法均在Python官方文档中有相应描述,但是对于他们的描述比较混乱而且组织比较松散。很难找到有一个例子(也许他们原本打算的很好,在开始语言参考中有描述很详细,然而随之而来的确是枯燥的语法描述等等)。

在我们农村,做土墙时会在墙里加上竹条让土墙更坚固,现在我们住在混泥土房里,在建设时同样会在墙里加上钢筑让房子更牢固。虽然我们已经看到不少3D打印房屋的案例,但是如果完全依靠3D打印技术创建房屋,那么如何让我们3D打印的房屋更坚固更安全这就是个新的问题。在意大利,WASP公司马西莫·莫雷蒂和他的团队一直在积极探索大型3D打印全尺寸房屋的可能性。

如果你恰好拥有一台3D打印机,那么你一定会想着如何用它来创造各种各样的东西。但是在上周于上海举办的世界家电博览会(Appliance World Expo 2015)上,海尔集团却为我们展示了一款3D打印出来的空调。当然,它的售价也着实不菲,不知道有多少消费者愿意掏出6395美元去购买一台呢?