V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  siteshen  ›  全部回复第 10 页 / 共 22 页
回复总数  435
1 ... 6  7  8  9  10  11  12  13  14  15 ... 22  
2017-12-19 22:43:17 +08:00
回复了 waterlaw 创建的主题 Python postgresql 9.3.5 数据库存储 字典型数据遇到的一个问题
看起来像是函数 `get_prep_value` 的问题,不知道你的 JSONField 怎么写出来的。
我的话,会在 Django 自带的 JSONField 上调整,楼主可以试试。

```
from django.contrib.postgres.fields.jsonb import JSONField as JSONBField

class JSONField(JSONBField):
def db_type(self, connection):
return 'json'
```
2017-12-16 03:00:41 +08:00
回复了 jaychenjun 创建的主题 JavaScript 一道初级的算法题
这段代码确实是用了些数学知识,再用了一点点 trick,因而比较难以理解。
我这给不了严格的数学证明,只能帮助你直观理解下。

S0 = a
S1 = ax + b = S0*x + b
S2 = ax^2 + bx + c = (ax + b)x + c = S1*x + c
S3 = ax^3 + bx^2 + cx + d = S2*x + d
...
Sn = S{n_1}*x + 常数项

特定到这道题,x = 2,a, b, c, .. 为 0 或者 1 (输入为二进制数组)
a * x + b = a * 2 + b = (a<<1) + b = a << 1 + b
最后一步用的小 trick:因为 a << 1 mod 2 = 0,b 为 0 或 1,所以 a<<1 | b = a * 2 + b
2017-12-14 21:13:01 +08:00
回复了 piaochen 创建的主题 Python 关于 Django Model 中,如何设置字段的默认值,并作用在表里?
2017-12-14 00:17:13 +08:00
回复了 yantianqi 创建的主题 程序员 path.join 和 path.resolve 有什么区别
以后提这种问题出门右拐找 https://www.v2ex.com/go/js,要不就在标题里加上 JavaScript 字样,免得浪费大家时间。
2017-12-07 13:04:10 +08:00
回复了 fe619742721 创建的主题 分享发现 来算算你朋友圈的咪蒙率是多少, ayawawa 率又是多少
@siteshen 群发助手看到了总数了。咪蒙率 16%
2017-12-07 13:01:31 +08:00
回复了 fe619742721 创建的主题 分享发现 来算算你朋友圈的咪蒙率是多少, ayawawa 率又是多少
45 个关注。大概 1/3,我是不是也该关注一波了。

搭车问下怎么查看好友总数的?
2017-12-07 09:32:44 +08:00
回复了 conn4575 创建的主题 Python Python 异常信息获取的最佳实践是什么
BaseException.args 是 python2.5 新增的属性,可以知道用户传递的是什么内容。

print(Exception(1, 2, 3).args)
# (1, 2, 3)

print(Exception('xyz').args)
# ('xyz',)

print(Exception().args)
# ()

初步了解了下 PHP 的 getMessage() 类似 python 中限定了参数为字符串的异常。

python 的异常里的内容可以是任何东西,写入的是啥,取出来的就是啥了。
异常 catcher 并不能做什么,只能规范异常 raiser 的行为。

如果 catcher 和 raiser 都是可控制的代码,可以自定义的异常,用这种方式规范代码。示例:

class SomethingError(Exception):
def __init__(self, code, message, blablabla):
self.code = code
self.message = message
self.blabla = blabla

然而即使如此,raiser 仍然可以不按“规范” raise Somthing('string', 666, []) 。
python 语言本身没有限制用户的行为,靠用户自觉。
2017-11-23 07:31:56 +08:00
回复了 k9982874 创建的主题 分享发现 golang 是目前为止用过的最难受的语言
说得很对,这些楼主想要的几乎都没有,(除了 go 明确是支持自动推导的静态类型)。

另外 template ( c++)和范型( java?-不很清楚这块),函数默认值( python )和函数重载( c++/java )都能解决同样的问题,有一个就可以了。(当然了 go 都没有……)
2017-11-21 22:05:45 +08:00
回复了 winglight2016 创建的主题 Python 请教一个 Python 列表解析的问题
楼上虽然说明了有些内容会转成 tuple,不过以前没见过这种写法,还是不清楚是怎么转成 tuple 的,就研究了下。

https://docs.python.org/3/reference/expressions.html#slicings

The semantics for a slicing are as follows. The primary is indexed (using the same __getitem__() method as normal subscription) with a key that is constructed from the slice list, as follows. If the slice list contains at least one comma, the key is a tuple containing the conversion of the slice items; otherwise, the conversion of the lone slice item is the key. The conversion of a slice item that is an expression is that expression. The conversion of a proper slice is a slice object (see section The standard type hierarchy) whose start, stop and step attributes are the values of the expressions given as lower bound, upper bound and stride, respectively, substituting None for missing expressions.

对于表达式 a[`.+`] 如果 正则 `.+` 至少包含一个逗号,则 key 为一个 tuple,否则 key 为 slice。
下面的示例能更清楚地说明上面的规则:

$ cat test.py && python3 test.py
class A():
def __getitem__(self, *args, **kwargs):
print('args:', len(args), args[0])

a = A()
a[1:]
a[:2]
a[1:2]
a[1,:]
a[:,2]
a[1,:,2]
# end of test.py

args: 1 slice(1, None, None)
args: 1 slice(None, 2, None)
args: 1 slice(1, 2, None)
args: 1 (1, slice(None, None, None))
args: 1 (slice(None, None, None), 2)
args: 1 (1, slice(None, None, None), 2)
2017-11-09 18:02:00 +08:00
回复了 RuiQ 创建的主题 Python 关于 SQLAlchemy 的一个问题
这个能解决你的问题,可以去研究下。
http://docs.sqlalchemy.org/en/latest/orm/session_transaction.html#enabling-two-phase-commit

For backends which support two-phase operation (currently MySQL and PostgreSQL), the session can be instructed to use two-phase commit semantics. This will coordinate the committing of transactions across databases so that the transaction is either committed or rolled back in all databases.
2017-11-09 00:07:53 +08:00
回复了 RuiQ 创建的主题 Python 关于 SQLAlchemy 的一个问题
@ryd994 我觉得题主的意思是,a_session 和 b_session 访问的是不同的数据库,没法在一个 transaction 处理。
登录和其他不一样,不需要死搬硬套,给几个我一直在使用的 API 设计示例:
{
"meta:" {"success": true},
"data": {},
}

登录 POST /auth/login {"username": "", "password": ""} -> {"token": ""}

读取我的信息 GET /me/profile -> {"me": {}}
读取用户信息 GET /users/1024/profile -> {"user": {}}

关注用户 POST /users/1024/follow
用户关注列表 GET /users/1024/following-user -> {"users": []}
2017-10-19 13:03:55 +08:00
回复了 northisland 创建的主题 Python 问 2 个关于 Python 的简单问题。困扰我很久
1. 不知道是否可以删。我的建议是不要删,这样就不用关心 with 的作用域的问题;
2. open(path).read() 肯定不会自动 close 文件,和 python 哲学 "Explicit is better than implicit" 冲突。

ps: 可以使用函数 `json.load` 少敲几个字符。
2017-09-21 19:35:19 +08:00
回复了 e8c47a0d 创建的主题 Node.js 要让 node 监听 80 的话只能用 Nginx 转发吗?
看起来只是开发过程中用用,建议直接用另外的端口 3000、5000、8080 等。
如果需要查看 header 区别,一个在 nginx 后访问,一个直接访问,把两种情况的 HTTP header 打印出来对比就行了。

非要使用 80 端口的话,可以参考这个(来自 `brew info nginx-full`):
$ sudo chown root:wheel /usr/local/opt/nginx-full/bin/nginx
$ sudo chmod u+s /usr/local/opt/nginx-full/bin/nginx
2017-09-20 19:10:35 +08:00
回复了 xcatliu 创建的主题 程序员 运行一个脚本,看看你的项目的代码质量吧
看标题还以为支持所有语言,结果打开 GitHub 才发现只支持前端的内容。

发在“程序员”节点,希望标题里有“前端”、“ Javascript ” 之类的字样。
2017-09-20 09:12:59 +08:00
回复了 SimbaPeng 创建的主题 Python Python 为什么不用 doxygen 这种清晰明了的注释风格?
为什么不用?因为各大语言基本有各自的文档规范。清晰明了是一方面,是否易维护也是需要考虑的因素。

比如 python 有定义自己的文档规范 https://www.python.org/dev/peps/pep-0257/ 和标记语言 http://docutils.sourceforge.net/
初步了解 doxygen 最初是为写 C/C++ 文档用的,和其他 java doc, javascript doc 之类的一样,都想从给一门语言加注释文档出发直到一统天下,不过谁也不服谁。
这些文档风格对本语言的支持都很不错,但不一定特别适合其他语言。静态、动态类型之分,强、弱类型语言,可能对文档的需求都不太一样。
常年使用某语言的人,文档也会跟着某语言社区的风格走,社区文化导致的,除非特别适用,否则很难该换风格。

相应地,也可以问“ C/C++为什么不用 rst 写文档”,“ javascript 为什么很少用 doxygen 生成文档”。
2017-09-13 13:27:44 +08:00
回复了 MrXiong 创建的主题 Java 请问各位,公司内部的接口文档是怎么管理的?
我们公司使用的 swagger,不过默认的“先设计好 *所有* API 格式,再生成代码模版”的方式并不适合我们(因为随时需要增加新的 API 和扩展现有的 API ),我们的使用方式如下:

1. python/go 代码按正常逻辑写,如:
// method, url, input format, output format
routes = [("POST", "/me/update", UpdateMeForm, MeResponse, ["tag1", "tag2", ...])]

2. 自定义函数 ToSwaggerJSON(method, url, request_form, response_object) 生成对应的 swagger.json 文件,然后交给 swagger-ui 处理其余事情;

3. 客户端在浏览器查看 API 文档,几乎没有进行过 API 问题的沟通。

ps: 最大的难点在于 ToSwagger() 函数,python/go 都没找到合适的库,花了不少的时间(印象中 python/go 各一周?),自己查看 swagger 文档实现了部分接口格式。
1 ... 6  7  8  9  10  11  12  13  14  15 ... 22  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2596 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 06:59 · PVG 14:59 · LAX 22:59 · JFK 01:59
Developed with CodeLauncher
♥ Do have faith in what you're doing.