小编ran*_*ure的帖子

python set contains包含列表

我正在使用python 2.7

考虑以下代码片段(示例是设计的):

import datetime

class ScheduleData:
    def __init__(self, date):
        self.date = date

    def __eq__(self, other):
        try:
            return self.date == other.date
        except AttributeError as e:
            return self.date == other

    def __hash__(self):
        return hash(self.date)



schedule_set = set()
schedule_set.add(ScheduleData(datetime.date(2010, 8, 7)))
schedule_set.add(ScheduleData(datetime.date(2010, 8, 8)))
schedule_set.add(ScheduleData(datetime.date(2010, 8, 9)))

print (datetime.date(2010, 8, 8) in schedule_set)

schedule_list = list(schedule_set)

print (datetime.date(2010, 8, 8) in schedule_list)
Run Code Online (Sandbox Code Playgroud)

这个输出是出乎意料的(对我来说,至少):

[08:02 PM toolscripts]$ python test.py
True
False
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,给定日期在schedule_set我已经覆盖__hash____eq__函数中找到.

根据我的理解,in运算符将检查集合的哈希和相等性,但对于列表,它将简单地迭代列表中的项目并检查相等性.

那么这里发生了什么?为什么in …

python equality contains list set

6
推荐指数
2
解决办法
3448
查看次数

P4.Net 和 P4CHARSET

我正在使用 P4.Net 连接到我的非 unicode 服务器,但是我运行的某些命令失败:

              "Unicode clients require a unicode enabled server."
Run Code Online (Sandbox Code Playgroud)

如何在 P4.Net 中将 P4CHARSET 更改为无?我试过了

              P4Connection p4 = new P4Connection();
              p4.Charset = "none"
              p4.Connect()
Run Code Online (Sandbox Code Playgroud)

我还尝试在 p4.Run 命令之前更改字符集:

              p4.Charset = "none"
              p4.Run("where", "c:\\some\\random\\dir");
Run Code Online (Sandbox Code Playgroud)

我尝试将字符集设置为“none”、null 和“”。

如果我尝试将全局选项传递给 p4.Run 命令,它也不起作用。IE。

              p4.Run("-C none where", "c:\\some\\random\\dir");
Run Code Online (Sandbox Code Playgroud)

因“未知命令”而失败

有没有人在 P4.Net 脚本中更改 P4CHARSET 方面取得过成功?你怎么做呢?

.net perforce p4.net

5
推荐指数
1
解决办法
3459
查看次数

标签 统计

.net ×1

contains ×1

equality ×1

list ×1

p4.net ×1

perforce ×1

python ×1

set ×1