小编jis*_*one的帖子

Python:为什么int类没有像`__lt __()`那样丰富的比较运算符?

非常好奇.

我已经注意到了(至少在PY 2.6和2.7),一个float拥有所有熟悉的丰富的比较函数:__lt__(),__gt__,__eq__等.

>>> (5.0).__gt__(4.5)
True
Run Code Online (Sandbox Code Playgroud)

但是int没有

>>> (5).__gt__(4)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
AttributeError: 'int' object has no attribute '__gt__'
Run Code Online (Sandbox Code Playgroud)

这对我来说很奇怪,因为运营商本身运作良好

>>> 5 > 4
True
Run Code Online (Sandbox Code Playgroud)

甚至字符串也支持比较功能

>>> "hat".__gt__("ace")
True
Run Code Online (Sandbox Code Playgroud)

但所有的int都是__cmp__()

对我来说似乎很奇怪,所以我想知道为什么会这样.

刚刚测试过,它在python 3中按预期工作,所以我假设有一些遗留原因.仍然希望听到正确的解释;)

python language-design language-history

21
推荐指数
2
解决办法
1318
查看次数

是否有group_concat的长度限制或为什么它不能在文本字段上工作的另一个原因

首先,这是查询:

SELECT GROUP_CONCAT(title) title, GROUP_CONCAT(description) description,
skill_id, count(*)

FROM jobs j
INNER JOIN job_feed_details d
ON j.id = d.job_id
JOIN jobs_skills js
ON j.id = js.job_id
    WHERE moderated = 1
    group by skill_id
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作,除了描述字段只返回一个结果,而不是所有结果的串联.我怀疑这是因为描述是一个text字段,但我找不到任何关于为什么连接不适用于文本字段的内容.

任何人都知道为什么这不起作用?

mysql sql group-concat

12
推荐指数
1
解决办法
2万
查看次数

MySQL中的空间索引 - 错误 - 无法从发送到GEOMETRY字段的数据中获取几何对象

我是整个'空间索引'的新手,但它似乎是基于纬度/经度的过滤的最佳解决方案.所以我在表格中添加了一列:

所以我创建了一个geometry字段:

  ALTER TABLE `addresses` ADD `point` POINT NOT NULL 
Run Code Online (Sandbox Code Playgroud)

然后我尝试添加一个索引:

  ALTER TABLE `addresses` ADD SPATIAL INDEX ( `point` ) 
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

  #1416 - Cannot get geometry object from data you send to the GEOMETRY field
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

mysql geometry geolocation spatial-index mysql-error-1416

10
推荐指数
2
解决办法
3万
查看次数

elixir typespecs中参数化的可枚举类型

是否可以Enumerable.t在elixir中参数化类型?

所以目前我有一个带有foos 列表的函数:

@spec the_awesome([foo]) :: any
def the awesome(foos) do
  Enum.reduce(foos, &(bar(&2, &1)))
end
Run Code Online (Sandbox Code Playgroud)

而且它真的不一定是一个清单!因为唯一的函数调用来自Enum模块我想更改typespec以获取任何Enumerable,但保持Enumerable必须完全由foos 组成的要求

就像是

@spec the_awesome(Enumerable.t(foo)) :: any
Run Code Online (Sandbox Code Playgroud)

这可能吗?

types elixir

8
推荐指数
1
解决办法
244
查看次数

查看Unicode字符串的八进制编码(浏览器内或OSX工具)

有一个不可见的字符破坏了我的XML解析器.

c&

XML声称是UTF-8,但是当我尝试使用时 <c:import . . . charEncoding="UTF-8">

我得到这个友好的信息:

错误:javax.servlet.jsp.JspException:java.io.CharConversionException:非法的utf8编码(187)

我已经能够找到问题的根源.它是一个位于'c'和'&'之间的隐形字符.

我想更多地了解这个角色,但似乎IntelliJ无法向我展示隐藏的角色...

我想我在网上看到了一个可以将Unicode字符转换为八进制值的工具,但我再也找不到了.如果有一个我需要下载的工具,那就没问题.

有什么建议?


好的,朋友告诉我,od所以我尝试了一下:

$ echo -n "c&" | od -c
0000000    c 357 273 277 357 273 277   &                                
0000010
Run Code Online (Sandbox Code Playgroud)

所以似乎问题是由字节序列引起的 357 273 277

我们知道那个序列是什么吗?

xml unicode utf-8 character-encoding

2
推荐指数
1
解决办法
1609
查看次数

无法访问codeigniter模型中的变量

我试图从一个codeigniter控制器访问一个模型中的数组,事情是奇怪的.

目前我在模型中的所有内容都是这样的:

class Pages_model extends CI_Model {
    function __construct()
    {
        parent::__construct();
    }

    var $pages = array(
        'draw', 'stackoverflow', 'words'
    );
}
Run Code Online (Sandbox Code Playgroud)

我可以看到正在设置数组,因为我执行时

$this->load->model('Pages_model');
die(var_dump(get_object_vars($this->Pages_model)));
Run Code Online (Sandbox Code Playgroud)

我得到了输出

array
  'pages' => 
    array
      0 => string 'draw' (length=4)
      1 => string 'stackoverflow' (length=13)
      2 => string 'words' (length=5)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试访问变量本身时:

 $this->load->model('Pages_model');
 die(var_dump($this->Pages_model->$pages));
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

消息:未定义的变量:页面

这对我没有任何意义.到底是怎么回事????

php controller model codeigniter

0
推荐指数
1
解决办法
3247
查看次数