V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  HelloAmadeus  ›  全部回复第 5 页 / 共 7 页
回复总数  136
1  2  3  4  5  6  7  
❮ ❯
2019 年 6 月 4 日
回复了 HelloAmadeus 创建的主题 › Python › 一个关于字符串搜索的问题
@geelaw 是子串,不好意思搞错了。后缀树研究过一点,不确定好不好用,试一下实现一个
2019 年 5 月 26 日
回复了 fghjghf 创建的主题 › Linux › 文件缓冲区和 socket 缓冲区 是同一个吗?
epoll 并不能处理文件描述符
2019 年 5 月 17 日
回复了 ynohoahc 创建的主题 › 程序员 › docker 对普通个人开发者的作用,求指点
kubernetes 搭配 docker 才能发挥容器的最大优点
bsd 和 Linux 的区别
2019 年 4 月 4 日
回复了 mzmxcvbn 创建的主题 › Python › pymongo, APscheduler 和 gunicorn 一起使用的问题
@mzmxcvbn 看一下你在 flask 请求之前有数据库操作吗?
2019 年 4 月 4 日
回复了 mzmxcvbn 创建的主题 › Python › pymongo, APscheduler 和 gunicorn 一起使用的问题
创建 mongo client 的时候把 connect=false 加上
2019 年 3 月 26 日
回复了 shimingzhoudf 创建的主题 › Python › Python 调用类方法问题
python 实现就是这样,实例调用方法默认把 self 传进去了,实际的执行的就是类定义的方法.
2019 年 3 月 21 日
回复了 bromineMai 创建的主题 › 数据库 › Mysql 的'start transaction'真的马上开启了一个事务吗?
alert 难道可以用在事务里了吗?
2019 年 3 月 19 日
回复了 Vegetable 创建的主题 › Python › Python 里你们会把 if 写成单行吗(`if cond:doit()`)?
标准库里有很多这样一行的代码
2019 年 2 月 22 日
回复了 Muninn 创建的主题 › 编程 › RESTful API 中的 Status code 是否要遵守规范
Failures MUST be reported in the 4xx or 5xx range. This is true for both system errors and application errors.同意这个观点
2018 年 12 月 3 日
回复了 rizon 创建的主题 › Python › Python 注解 @以及 django 和 flask 的使用疑问
装饰器是一个函数,只接受一个参数,返回一个函数,用 @装饰函数,在 import 模块时候运行一次。用处嘛,就大概是 java 里面向切面编程,将一些通用的逻辑插到函数里。
flask 那个 app.route 装饰器就是在你 import 的时候,注册好了路由
ansible 在用,kubernetes 在用, 你只能是在你写的应用程序里面不用, 甚至你都不能决定你的应用程序里面不用 yaml。 你说出个天花板的理由, 也改变不了什么 。要么你就写个更好的, 而且给现在所有语言都写了能用于生产的 parser, 然后在批评 yaml, 那自然会有人给你点赞。
2018 年 11 月 7 日
回复了 xiaochen2018 创建的主题 › 程序员 › 大家生产环境用 Docker 吗?
公司内部产品全部上 kubernets 了,有些客户也切换成 kuberbets 了
2018 年 11 月 2 日
回复了 tzhhahaha 创建的主题 › Python › Django 学习求解
和我当初一样,我的经验,先做一个博客,靠这个经验去面试,多面试,面试不会的就回来学,过程比较漫长,做好一次又一次被拒绝的准备
写个配置文件不就行了吗
看点 python 源码实现就对"一切都是对象" 这种模糊的描述更清晰了. 举一个简单的例子如两个 int 相加, 伪代码如下:

PyObject * Interger_Add(PyObject* left, PyObject* right) {

PyIntObject* int_left = (PyIntObject*) left;
PyIntObject* int_right = (PyIntObject*) left;
PyIntObject* int_new = (PyIntObject*) Py_GC_MALLOC(&PyIntObject); # 在 malloc 之后做一些如添加引用计数等工作

int_new->ob_data = int_left->ob_data + int_right->ob_data; # ob_data 为 c long 类型
return (PyObject*) int_new;
}

你看, 一个 两个 int 型相加, 参数传进来的是 PyObject , 返回的是 PyObject. 一切都是对象是不是更好理解了.
还有 Python 的 module 是怎么也是对象. 也有类似这样的函数, PyObjcet* model_reload(PyObject* module);
你看重载 module, 参数传进来的都是 PyObject, 返回的也是 PyObject, 一切都是对象是不是更清晰了?

如果不从 Python 源码来理解的话, 你就要区分 object 这个关键词 python 与 c++和 java 中的区别, object 在 c++和 java 中的概念更像是 python 中 实例(instance) 的概念.

在面向对象编程概念里, 类是抽象数据和与这些抽象数据相关操作的集合, 对象是类的实例, 也就是具体数据和构建在这些具体数据上的集合. 这个概念与 python 中一切都是对象是完全不在一个层面上的比较.

面向对象是一种抽象, 他与语言是无关的, 任何语言都能实现面向对象中的至少一部分想法. 而"一切都是对象" 这句话描述的不是抽象, 而是具体的实现.

python 通过 PyObject 实现了面向对象这个抽象的思想. 所以在一些地方借鉴了思想的关键字. 如 class, object. 但是这些词并不是严格对应面向对象的概念, 因为 python 是多范式的编程语言.

所以把"一切都是对象"中的对象和面向对象编程中的对象 这两个对象区分开, 才能理解 python 中一切都是对象, 这个概念.

P.S. v2 的编辑器真是垃圾.
看点 python 源码实现就对"一切都是对象" 这种模糊的描述更清晰了. 举一个简单的例子两个 int 相加, 伪代码如下:

PyObject * Interger_Add(PyObject* left, PyObject* right) {
PyIntObject* int_left = (PyIntObject*) left;
PyIntObject* int_right = (PyIntObject*) left;
PyIntObject* int_new = (PyIntObject*) Py_GC_MALLOC(&PyIntObject);



}
2018 年 9 月 5 日
回复了 Jhonson 创建的主题 › 问与答 › Java 的文档有没有类似 Python PEP 计划的文档说明?
java 有 jep,你搜一下
2018 年 9 月 4 日
回复了 mikefy 创建的主题 › Python › Python 初始化对象求助
用装饰器解决
2018 年 9 月 3 日
回复了 ivmm 创建的主题 › 数据库 › MariaDB/MySQL vs PostgreSQL 世纪大决战 这个标题看看就刺激
对不起,我选择 mongodb,(滑稽
1  2  3  4  5  6  7  
❮ ❯
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   939 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 57ms · UTC 21:37 · PVG 05:37 · LAX 14:37 · JFK 17:37
♥ Do have faith in what you're doing.