V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  HelloAmadeus  ›  全部回复第 5 页 / 共 7 页
回复总数  133
1  2  3  4  5  6  7  
bsd 和 Linux 的区别
2019-04-04 15:01:48 +08:00
回复了 mzmxcvbn 创建的主题 Python pymongo, APscheduler 和 gunicorn 一起使用的问题
@mzmxcvbn 看一下你在 flask 请求之前有数据库操作吗?
2019-04-04 09:42:28 +08:00
回复了 mzmxcvbn 创建的主题 Python pymongo, APscheduler 和 gunicorn 一起使用的问题
创建 mongo client 的时候把 connect=false 加上
2019-03-26 18:12:37 +08:00
回复了 shimingzhoudf 创建的主题 Python Python 调用类方法问题
python 实现就是这样,实例调用方法默认把 self 传进去了,实际的执行的就是类定义的方法.
2019-03-21 13:00:49 +08:00
回复了 bromineMai 创建的主题 数据库 Mysql 的'start transaction'真的马上开启了一个事务吗?
alert 难道可以用在事务里了吗?
2019-03-19 09:30:49 +08:00
回复了 Vegetable 创建的主题 Python Python 里你们会把 if 写成单行吗(`if cond:doit()`)?
标准库里有很多这样一行的代码
2019-02-22 12:47:33 +08:00
回复了 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-03 20:43:21 +08:00
回复了 rizon 创建的主题 Python Python 注解 @以及 django 和 flask 的使用疑问
装饰器是一个函数,只接受一个参数,返回一个函数,用 @装饰函数,在 import 模块时候运行一次。用处嘛,就大概是 java 里面向切面编程,将一些通用的逻辑插到函数里。
flask 那个 app.route 装饰器就是在你 import 的时候,注册好了路由
ansible 在用,kubernetes 在用, 你只能是在你写的应用程序里面不用, 甚至你都不能决定你的应用程序里面不用 yaml。 你说出个天花板的理由, 也改变不了什么 。要么你就写个更好的, 而且给现在所有语言都写了能用于生产的 parser, 然后在批评 yaml, 那自然会有人给你点赞。
2018-11-07 19:48:43 +08:00
回复了 xiaochen2018 创建的主题 程序员 大家生产环境用 Docker 吗?
公司内部产品全部上 kubernets 了,有些客户也切换成 kuberbets 了
2018-11-02 00:25:51 +08:00
回复了 tzhhahaha 创建的主题 Python Django 学习求解
和我当初一样,我的经验,先做一个博客,靠这个经验去面试,多面试,面试不会的就回来学,过程比较漫长,做好一次又一次被拒绝的准备
写个配置文件不就行了吗
2018-09-07 21:49:22 +08:00
回复了 mainlong 创建的主题 Python Python 中一切都是对象,那如果类是对象,那(什么)是类呢?
看点 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 的编辑器真是垃圾.
2018-09-07 21:14:02 +08:00
回复了 mainlong 创建的主题 Python Python 中一切都是对象,那如果类是对象,那(什么)是类呢?
看点 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-09-05 08:46:59 +08:00
回复了 Jhonson 创建的主题 问与答 Java 的文档有没有类似 Python PEP 计划的文档说明?
java 有 jep,你搜一下
2018-09-04 10:32:51 +08:00
回复了 mikefy 创建的主题 Python Python 初始化对象求助
用装饰器解决
2018-09-03 21:12:32 +08:00
回复了 ivmm 创建的主题 数据库 MariaDB/MySQL vs PostgreSQL 世纪大决战 这个标题看看就刺激
对不起,我选择 mongodb,(滑稽
2018-09-02 12:48:53 +08:00
回复了 mezw 创建的主题 分享创造 一年前的小站点,改版终于完成了
提个建议, 作为搜索来说, 用 card 来显示结果不合适. 同屏展示的信息太少了. 搜索是目的导向的, 目的性很强的. card 是展示给无目的浏览的用户的. 已 google 为例, google 一屏能展示 7 条, 而且标题, url, 内容大小颜色区分很明显.
2018-09-02 12:40:35 +08:00
回复了 bestehen 创建的主题 Python Python 中的 pathlib 怎么用
因为你在 posix 兼容的系统啊, Path 类是一个接口, posixpath 类是具体实现, 你用就行了
2018-08-23 21:34:24 +08:00
回复了 Alerta 创建的主题 Python Python 关于后期绑定的问题,我开始怀疑人生了,求大神解析
```
tmp = [lambda x: x*i for i for range(4)]
```
返回的是:
```
tmp = [lambda x: x*3, ...]
```
```
tmp = (lambda x: x*i for i for range(4))
返回的是:
```
tmp = (lambda x: x*0, lambda x: x**1, ...) # 这是一个生成器
```

列表表达式是即时计算的, 而生成器是迭代时才会计算. 返回的 lamda 匿名函数在查找 i 变量的时候, 列表表达式已经算计完了, 此时的 i 值为 3, 所以计算的返回结果是 6, 而在生成器计算的时候, `for i in range(4)` 的计算是惰性的, 只有你去迭代生成器的时候, i 的值才会 +1. 所以 lambda 表达式查找的 i 变量是 0, 1, 2, 3 的序列.
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5536 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 07:07 · PVG 15:07 · LAX 00:07 · JFK 03:07
♥ Do have faith in what you're doing.