V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  yfaming  ›  全部回复第 1 页 / 共 1 页
回复总数  4
5 月 31 日
回复了 RW233 创建的主题 OpenAI 为什么 ChatGPT 网页端这么卡
同感。打开 ChatGPT 网页后,我都是立即开新标签页,在地址栏里输入问题。等我输完,再 copy 到 ChatGPT 。在我电脑上,如果直接在 ChatGPT 输入,要么中文输法上屏的变成英文,还会吞字符。搞不明白为啥。
2014 年 5 月 23 日
回复了 0bit 创建的主题 酷工作 [北京]招聘 Python 开发工程师(妹子多)
十点上班六点下班,这不是八小时吗?
参考一下 http://docs.python.org/2/reference/datamodel.html#the-standard-type-hierarchy,3.2 节 "The standard type hierarchy" 下 Classes 和 Class instances 两段。

简单说,每个类维护着一个字典叫 __dict__,里面保存类的变量,方法,类方法,静态方法等;每个实例也维护个着字典叫 __dict__,里面保存实例的变量。

通过类来访问属性,如 C.x,首先到类 C 的 __dict__ 里查找,看有没有 'x' 键,若没有则按继承树查找 C 的基类们。

通过实例来访问属性,如 a.x,首先到 a 的 __dict__ 里查找,然后到 a 的类及其基类们的 __dict__ 里查找,方法如上。

没找到,自然抛 AttributeError 异常了。找到了呢,有个 "transform" 的过程,见链接吧。也可暂忽略之,不去管什么 unbound method, bound method, classmethod, staticmethod 什么的。


这里没有作用域什么事,只是有个屏蔽的问题。比如,类的 __dict__ 里有个 x,其实例的 __dict__ 里也有个 x,那么,通过实例访问 x 自然是取实例的 x 而通过类访问 x 就取了类的 x。

要小心的是,类有个 x 而实例没有,执行 a.x = 2 时(a 是实例),则会在实例 a 的 __dict__ 里添加 x,而不是修改类的。

-----------------------

另外,链接那个文档也指出了,其实有很多 hooks 来拦截 C.x 和 a.x 这样的访问的,比如 @property,descriptor 什么的,这些是更“高级”一点的内容了。
2013 年 3 月 12 日
回复了 atomHR 创建的主题 酷工作 移动互联网技术团队诚聘技术geek
投了简历,希望不要被 BS。^_^
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   879 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 20:57 · PVG 04:57 · LAX 13:57 · JFK 16:57
♥ Do have faith in what you're doing.