首页   注册   登录
 zpoint 最近的时间轴更新

zpoint

V2EX 第 303997 号会员,加入于 2018-03-28 11:06:43 +08:00
cpython 底层实现笔记
  •  9   
    Python  •  zpoint  •  13 天前  •  最后回复来自 aSmallNewbie
    86
    zpoint 最近回复了
    加油🆙
    我之前快毕业->只敢投一两家->只有一家给机会(微型企业)->面试入职
    两年后(现在)->只敢投三到五家->只有一家给机会(中型企业)->面试入职
    🤦‍♂️
    14 天前
    回复了 zpoint 创建的主题 Python cpython 底层实现笔记
    @Hstar 谢谢, 刚开始为了让内容看起来比较丰满一点有点赶进度了, 慢工出细活会回头补充一下, 可以关注 issue😬😬
    14 天前
    回复了 zpoint 创建的主题 Python cpython 底层实现笔记
    @iamdaguduizhang 谢谢支持~
    20 天前
    回复了 zpoint 创建的主题 Python cpython 底层实现笔记
    @b00tyhunt3r 并没有用 python 实现这些结构, 如果你戳的是正文链接的话, 这些结构都是写解释器的人用 C 语言实现, 实现以后你能用解释器去运行 你根据 python 语法 /文档写出的 python 代码

    理解这些东西能帮助你写出更高效的代码, 在有对应需求的时候可以自己定制扩展解释器的功能
    20 天前
    回复了 zpoint 创建的主题 Python cpython 底层实现笔记
    @mattx 感谢支持, 菜鸡一枚, 没出书水平🤦‍♂️
    20 天前
    回复了 zpoint 创建的主题 Python cpython 底层实现笔记
    @codepark @Ingo @silencefly @rieuse 谢谢🤝🤝
    32 天前
    回复了 waibunleung 创建的主题 Python python3 的元类问题 心地善良的给些指点吧
    更正一下错别字

    调用 MyMeta.__new__ 生成一个类, 这里生成的类名称叫做 MyClass, __new__ 是上面你自己定义的, 其中你调用了 type.__new__(cls, name, bases, attr), 这一步会把 attr 中的值都复制到 MyClass 对应的属性中, attr 只是个字典
    32 天前
    回复了 waibunleung 创建的主题 Python python3 的元类问题 心地善良的给些指点吧
    @telnetning 这位老哥已经解答了, 我再补充下


    执行到如下这行的时候

    class MyClass(object, metaclass=MyMeta):

    会调用 type(MyMeta).__call__ 去创建这个类, 这个 __call__ 函数在 C 里面的流程可以

    简单的理解为 1. 调用 MyMeta.__new__ 生成一个类, 叫做 MyClass, __new__ 是上面你自己定义的, 其中你调用了 type.__new__(cls, name, bases, attr), 这一步会把 attr 中的值都复制到 MyMeta 对应的属性中, attr 只是个字典而已

    2. 判断一下 issubclass(type(MyClass), MyMeta) 是否为 True, 是的话再调用一下 type(MyClass).__init__(MyClass, name, bases, attr), 这里你没有写任何代码处理 attr 和自身属性的关联, 同样的, attr 还是同一个字典

    到这里, 类已经创建完了, 接下来创建实例, 过程类似
    区别就是 __new__ 你写了一行代码 type.__new__(cls, name, bases, attr) 创建了一个类, 创建的过程中会把 attr 中的值都复制到新创建的类中对应的属性上

    而 __init__ 你没有做对应的操作


    还有, metaclass 的 __new__ 的第一个参数应该是 mcs, 为你定义的 metaclass 本身
    而 metaclass 的 __init__ 的第一个参数应该是 cls, 为 metaclass 的 __new__ 函数创建并返回的新的类, 并不是 metaclass 本身 你定义的时候重名了
    34 天前
    回复了 zpoint 创建的主题 Python cpython 底层实现笔记
    @chaleaochexist 不同的人技能树不太一样, 花多点时间说不定你可以做的更好😂
    @boywhp [Facepalm] 赞同看源码提升快🤝🤝
    @telnetning 相互学习🤝
    34 天前
    回复了 zpoint 创建的主题 Python cpython 底层实现笔记
    @ruyuejun @crudboy @lCC1984 谢谢 O(∩_∩)
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2767 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 11ms · UTC 00:53 · PVG 08:53 · LAX 17:53 · JFK 20:53
    ♥ Do have faith in what you're doing.