一个 url : http://www.xxx.xxx/search/user + '/' +id , id 为 int 型,结果报错,本来打算用 join 的,发现 join 函数也不允许连接一个 int 型
我主要写 PHP 的。换 py 写感觉好不适应
我主要写 PHP 的。换 py 写感觉好不适应
|
upczwwMar 17, 2017 via iPhone
1
str(id)
|
|
devzeroMar 17, 2017 via Android
2
url 是 str 型的,拼接要类型相同吧
|
|
swullingMar 17, 2017 via iPhone
3
请用 str.format
|
|
jasontseMar 17, 2017 via iPad
4
强类型的差别,感觉又要吵了。。。。
|
|
kaka826Mar 17, 2017
5
" http://www.xxx.xxx/search/user/{}".format(id)
|
|
6
字符串拼接都是推荐"".format()来做的吧
|
|
imn1Mar 17, 2017
7
这个要看人类怎么定义
|
|
8
|
|
wevstyMar 17, 2017
9
py 这也算蛋疼的话,那 C++之类只能哭晕在厕所了
|
|
10
我曹, 还敢有 python 反人类的
拉出去 |
|
dishonestMar 17, 2017
11
@yxslnmp 这个不是 python 的锅吧
peewee 我没用过,如果你用 django 的 ORM , get 仍然会报错,但是用 first 就不会。 这个取决于你的需求,如果这是一个意料之外的,比如不合法访问,那么报错保护了数据,直接结束整个流程,是完全正确的;反之如果处理不存在的情况也是一种业务上的需求,你可以 try ,也可以用 first 再去处理 first 的返回值。 |
|
kindjeffMar 17, 2017
12
其实这个字符串拼接不自动转还是有好处的!
——以前用 flv.js 视频时间显示不出来,慢慢找发现我给的数字其实是字符串型,它用+号加起来的时候全部变成了巨长的数字。 |
|
scriptkidMar 17, 2017
13
各有各的蛋疼之处,主要看你习惯罢了
python 这样的语言你都觉得反人类,那我还有什么话说 |
|
mutoulbjMar 17, 2017
15
如果 get 不报错,那你想获得什么结果呢
|
|
16
|
|
maomaomao001Mar 17, 2017 via Android
17
没有模板字符串也就算了,字符串拼接居然不会自动转换类型。。。。
|
|
jkneedoutMar 17, 2017 via iPhone
18
用 c 语言的表示很淡定
|
|
Ge4LosMar 17, 2017
19
字符串拼接居然用 + 。
不用 format 也可以 % 来拼接啊。 另外 peewee get 不到的话,还有 get_object_or_404() 的方法。 LZ 还是多看看文档吧 |
|
GuestIDMar 17, 2017
20
就算报错,也会和你清清楚楚的说是类型错误啊。。
|
|
HstarMar 17, 2017
21
简单拼接比较习惯 'http://www.xxx.xxx/search/user/%d' % id 这样写
|
|
eason622Mar 17, 2017 via iPhone
22
用 format()岂不是美滋滋
|
|
23
|
|
syahdMar 17, 2017 via Android
25
推荐用 join ,性能比+高很多
|
|
26
所以学编程从复杂的语言开始也有好处, c++用多了觉得其他语言怎么折腾也能接受,用 kotlin 踩了一段时间坑之后觉得太爽了
|
|
shalkMar 17, 2017
27
用 perl 的时候,觉得类型随便用啊, 上下文自己感受,php 也是借鉴过来的
|
|
kghchMar 17, 2017
28
大概是还不适应吧,平心而论 python 是写起来最符合审美的语言,说到反人类,怎么没有 java
|
|
billleeMar 17, 2017
29
还好你用的不是 C.
|
|
C0VNMar 17, 2017
30
还好你不是用的静态类型的语言,要不然你可以去自杀了。
|
|
estMar 17, 2017
32
《 python 的 orm 是不是有点反人类啊》
居然不能 "select * from table where a=" + 1 |
|
fyMar 17, 2017
33
@maomaomao001
1. 模板字符串 3.6 有了, f-string ,现在生产环境是 3.5 , 3.6 并不遥远 2. 字符串拼接自动转换类型?到时候又会来喷 1 + '1' = '11' 了 |
|
springmarkerMar 17, 2017
34
这个 xxx.xxx 域名点开后很。。。。嗯。。。。。
|
|
zhustecMar 17, 2017 via Android
35
@liujinlingchn
Python 本来就很反直觉啊 |
|
icedxMar 17, 2017
36
Python 是强类型语言啊
|
|
phrackMar 17, 2017 via Android
37
换语言不适应就是依然是以前语言的思维习惯问题而已,多用用就自然而然了。
还记得用 c 换 py 的时候也有一两个月不适应。 |
|
foo2barMar 17, 2017
38
python 下的字符串拼接很好用啊
url = 'http://www.xxx.xxx/search/user/%d' %id |
|
PythonAnswerMar 17, 2017
39
用+是 js 党的习惯啊,哈哈哈
|
|
yunji3344Mar 17, 2017
40
同感
|
|
WispZhanMar 17, 2017
41
看来是需要探讨一下“第一个语言是 c/c++的重要性”。
|
|
think2011Mar 17, 2017
42
` http://www.xxx.xxx/search/user${id}` 觉得 js 的最好用, 'http://www.xxx.xxx/search/user/%d' %id 也还行
|
|
bomblessMar 17, 2017 via Android
43
确实,还不如 cpp ,隐式转换都没法做(逃
不过格式化字符串用从一串模板字符串出发其实也算是标准做法 |
|
likukuMar 17, 2017
44
果然 PHPer 的代码习惯够糟糕的哎...
|
|
45
与 py 交易不如和 ruby
"http://www.xxx.xxx/search/user/#{id}" |
|
likukuMar 17, 2017
46
|
|
limbo0Mar 17, 2017
47
lz 只会 php 吗
|
|
freestyleMar 18, 2017
48
这是强类型语言 不自动转型的 花式 format 很好用的 'http://www.xxx.xxx/search/user/{}',format(id)
|
|
Miy4moriMar 18, 2017 via iPhone
49
你在 v2 吐槽 py 不是找不自在吗?😂😂😂
|
|
uucloudMar 18, 2017
50
你随便找本新手教程看一遍再用。。省时间
|
|
RqPS6rhmP3Nyn3TmMar 18, 2017 via iPhone
51
动态类型一时爽……
写 PHP 我感觉是没有 py 爽 |
|
PythonAnswerMar 18, 2017
52
@likuku `%` 是淘汰的方法了,社区前阵子推荐 `str.format()`
3.6 以后可以用这个 ```python >>> f'The value is {value}.' 'The value is 80.' ``` |
|
andyiacMar 18, 2017
53
习惯就好
|
|
54
以 CPython 2.7.11 为例,在 Objects/stringobject.c 文件的 string_concat 函数开头加上:
``` if(!PyString_Check(bb) && bb->ob_type->tp_str != NULL) { PyObject *nbb = bb->ob_type->tp_str(bb); return string_concat(a, nbb); } ``` 然后就: |
|
fengfisher2Mar 18, 2017
56
是 python2.x 还是 3.x ?
我觉得 python 的已很人性化了。 |
|
precisi0nuxMar 18, 2017 via iPhone
57
楼主一定是个假 php dev , php 里 string concatenation 明明是 '.'
|
|
wangjieMar 18, 2017
58
可以试试写 node
|
|
pynixMar 18, 2017
59
坐等 3.6
|
|
fuxkcsdnMar 18, 2017
60
@xavierskip 静态类型语言反而不觉得
正因为 python 和 js 和 php 一样是弱类型的语言,所以想当然会觉得 str + int 应该自动转换成 str + str ,还特地 str + str(int) 确实很蛋疼 P.S. 用 python 三个礼拜有感 |
|
wildplantMar 18, 2017
61
楼主开了喷语言的贴,是说打住就能打住的吗?不翻页已经算好了。
|
|
billwsyMar 18, 2017
62
我觉得真正要吐槽的是运行到那一句才报错吧,要是 Python 静态类型多好
|
|
exoticknightMar 18, 2017
64
重要的是在 python 下拼接字符串就不应该用 +
不同语言要分开对待 |
|
exoticknightMar 18, 2017
65
另外我记得 php 的拼接更奇葩吧,好像是用.
|
|
vicalloyMar 18, 2017 via iPhone
66
如果真打算用一种新语言,应当找本书仔细看看,可以少很多坑,花不了几天时间。
你的问题都是最基础的东西,看过书都知道。另外你是在有 PHP 的思维写 python ,自然不爽。 第一个问题是因为类型不匹配。实际上 PHP 和 js 的自动类型转换很可能带来潜在的问题。 第二个问题,你给个默认值就不会抛错。 |
|
C0VNMar 18, 2017
67
@fuxkcsdn #60 Python 应该是强类型, js 是弱类型。
弱类型语言是指变量的类型可以被隐式转换。而强类型语言趋向于不自动转换变量类型,转换类型需要手动进行。 https://www.v2ex.com/t/61513 https://www.zhihu.com/question/19918532 |
|
neoblackcapMar 18, 2017
68
@whwq2012 其实少量拼接的时候+跟 join 的性能相差不大。
|
|
freestyleMar 18, 2017 via iPhone
70
其实 lz 是来黑 php 用.连接字符的 (doge
|
|
hoyixiMar 18, 2017
72
那你用 Swift 岂不是要砸电脑,嘿嘿
|
|
liuzhiyongMar 19, 2017 via iPad
73
Python 和 php 是不同的编程语言啦,相信楼主很快就能适应。
|
|
JerryZhangMar 20, 2017
74
Python 反人类的又不只这一个,何必大惊小怪的。
|
|
ChyrocMar 20, 2017
75
|