我正在使用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 …
我正在使用 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 方面取得过成功?你怎么做呢?