Eliminating self with Metaclasses
此文利用 metaclass 和字节码,使得在 class 中定义方法时不再需要显式指定 self 参数,当真妙极!
关于这个 self 参数是否多余,本身也是仁者见仁、智者见智的事情。我认为 python 这么做是有它充分的理由的,那就是 class 中定义的方法本质上还是函数,是函数就应该遵循函数的规矩,没必要对方法进行特殊照顾,隐藏掉 self 参数只是增加了一份 magic。
也许你会问了:那这个 self 是怎么传进去的呢?这里不又是一个 magic 吗?其实,这是利用了
descriptor 对函数进行了包装,而
descriptor 本身是个应用面很广的概念,并不只是为了实现这个而生的。
不管怎么说,相信总是有一些人(可能还是不少人)不喜欢这个 self 参数,那让我们回到主题,看看去掉 self 参数之后的 class 定义是什么样的:
class Test(object):
__metaclass__ = Selfless
def __init__(x=None):
self.x = x
def getX():
print self.x
def setX(x):
self.x = x
test = Test()
test.getX()
test.setX(7)
test.getX()
分享到:
相关推荐
"Selfless-crx插件"是一款专为英语环境设计的浏览器扩展程序,其主要功能是自动将用户在浏览网页过程中遇到的"selfie"一词替换为"self portrait"。这款插件旨在提升网络阅读体验,帮助用户在文化语境中更加准确地...
基于SUMO(STR-SUMO)的无私流量...建议使用Python 3.x,所需的软件包包含在requirements.txt中。 您可以使用pip直接安装它们(对于Python 3.x): pip3 install requirements.txt 您还需要正确安装SUMO: : 仓库的
将“Selfie”一词替换为“Self Portrait” 扫描网页中是否出现“ selfie”一词,并将其替换为“ self portrait”。 支持语言:English
这是一个基于B/S结构的通信原理仿真平台的源代码和技术报告还有Demo。它可以帮助你建立一个通信原理网上实验室,为学生提供在线实验。...her selfless help, I couldn’t finish the program in time
题目:—It is selfless the most beautiful teacher—Yang Xiangming to lose his life the child in the river. 答案:B. of; to save 解析:"It is + 形容词 + of sb. to do sth."结构强调的是某人的品质,这里...
学习这些作文,学生可以了解到如何用英语描述情感,如使用诸如"tenderness"、"selfless"等词来描绘母爱的特质;如何构建有深度的比喻,比如"like a beautiful angel"和"a blue sky";以及如何用恰当的句式表达感激,...
5. 英语词汇学习:如"homeless"(无家可归的),"extreme weather"(极端天气),"shelter"(避难所),"selfless act"(无私的行为)等,这些都是与社会问题和人道主义相关的词汇。 6. 预备高考:这部分内容可能是...
The guilt of his deceit weighed heavily upon him, and the image of Nabor's selfless act began to erode his cunning facade. Nabor continued, "My horse is more than just an animal; it represents trust ...
7. 形容词selfless(无私的)表明品质,用of连接主语,不定式to save表目的,答案为B. of; to save。 8. 句子中表示搭建帐篷过夜,使用put up,答案为B. put up。 9. 回答用一般现在时态表示将来,因此选A. is ...
4. **常用词缀组合**:列举一些常见词缀组合,如“self-”与“-less”构成“selfless”(无私的),让考生理解词缀的组合规律。 5. **记忆策略**:提供词根词缀的记忆方法,如联想记忆、分类记忆等,帮助考生提高...
例如,将"good"替换为"kind, honest, generous, selfless, brave, warm-hearted, sympathetic, honorable, humorous, smart, gentle"等人格特质词,或者在描述事物时用"great, fantastic, splendid, marvelous, ...
5. 此处需要两个形容词修饰“manner”,“selfless”意为无私的,“devoted”意为忠诚的。 6. "escape doing sth." 表示逃避做某事,故填“being fired”。 7. "be equal to doing sth." 是固定搭配,意为胜任做某...
15. "无私的"形容词形式是"selfless",形容他投身革命工作的无私精神。 16. "紧急情况"对应的短语是"emergency",记住在紧急情况下拨打110。 17. "毕业"的名词形式是"graduation",高中毕业后他决定去英国旅游。 18....
"selfless"描述的是杨向明的品质,所以用"of","to save"是不定式表目的。 8. 动词短语辨析:"put up"意为"搭建,建造",适合用于搭建帐篷的情境,符合题意。 9. 时态的运用:直到半小时后被准备好,"not...until....
"hopefully"(希望地),"legally"(合法地),"devoted to"(致力于),"unfair"(不公平的),"selfless"(无私的),"lost heart"(灰心),"out of work"(失业),"turned to"(转向,求助于),"only"(只有)...
这篇作文不仅展现了父亲的伟大形象,还涵盖了多个英语知识点,如日常情景对话、形容词的使用(unwavering, demanding, selfless, unconditional)、时间表达(before the first light of dawn, in the event, under ...
最后,UNIT5探讨了品质和个人特质,如"quality"(质量)、"warm-hearted"(热心的)、"selfish"(自私的)和"selfless"(无私的)。这些词汇有助于培养学生的道德认知和人格教育。 这个PDF文档对于高中生来说是宝贵...
7. 形容词性物主代词与不定式结构:形容词"selfless"用来描述人,所以用介词"of",不定式作目的状语,故正确答案是B. of; to save。 8. 动词短语辨析:在地震后,雅安的一些人无家可归,他们必须搭建帐篷过夜。"put...
- 掌握形容词如selfless(无私的)、determined(坚定的)、generous(慷慨的)等描述伟人品质的词语。 2. **语法与句型**: - 使用了not only...but also...结构来描述人物品质,如"He is not only kind-hearted...
精读时,我们不仅要关注词汇,还要注意词汇在句子中的具体用法,如“run”在这里表示“运营”,“overwhelmingly”表示“压倒性地”,“selfless”意味着“无私的”。同时,理解句子间的逻辑关系,比如“that would ...