草庐IT

行为树

全部标签

python - 为什么 getpwuid 和 getgrgid 有不同的行为?

在Python2.7、3.4和3.5中,grp.getgrgid能够接受一个字符串:fromgrpimportgetgrgidprint(getgrgid('0'))但是,pwd.getpwuid不能做同样的事情:frompwdimportgetpwuidprint(getpwuid('0'))Traceback(mostrecentcalllast):File"getpwuid_test.py",line2,inprint(getpwuid('0'))TypeError:anintegerisrequired这是因为在Modules/pwdmodule.c中,getpwuid使用Py

python - "is"运算符对整数的行为异常

为什么以下在Python中会出现意外行为?>>>a=256>>>b=256>>>aisbTrue#Thisisanexpectedresult>>>a=257>>>b=257>>>aisbFalse#Whathappenedhere?WhyisthisFalse?>>>257is257True#Yettheliteralnumberscompareproperly我正在使用Python2.5.2。尝试一些不同版本的Python,似乎Python2.3.3在99和100之间显示了上述行为。基于以上内容,我可以假设Python的内部实现方式是“小”整数与大整数的存储方式不同,is运算符可以

python - Python 日期和时间增量减法的惊人行为

我正在尝试做一些Pythondate和timedelta数学运算并偶然发现了这一点。>>>importdatetime>>>dt=datetime.date(2000,4,20)>>>td=datetime.timedelta(days=1)>>>dt-tddatetime.date(2000,4,19)>>>-(td)+dtdatetime.date(2000,4,19)>>>dt-td==dt+(-td)True到目前为止一切顺利,但是当timedelta也包括一些小时时,它会变得有趣。>>>td=datetime.timedelta(days=1,hours=1)>>>dt-td

python - 从 multiprocessing.Queue 获得近后进先出行为的干净方法? (甚至只是*不*接近先进先出)

有谁知道从multiprocessing.Queue获得接近LIFO甚至不接近FIFO(例如随机)行为的干净方法?替代问题:有人可以指出管理multiprocessing.Queue背后的实际存储结构的线程的代码吗?这似乎是微不足道的提供大约后进先出的访问权限,但我在试图找到它的过程中迷失了方向。注意事项:我相信multiprocessing.Queuedoesnotguaranteeorder.美好的。但它是near-FIFO,所以near-LIFO会很棒。我可以将所有当前项目从队列中取出并在处理它们之前颠倒顺序,但我更愿意尽可能避免困惑。(编辑)澄清一下:我正在使用multipro

python - set 和 frozenset 的继承行为似乎不同

有人可以解释以下行为吗:classderivedset1(frozenset):def__new__(cls,*args):returnfrozenset.__new__(cls,args)classderivedset2(set):def__new__(cls,*args):returnset.__new__(cls,args)a=derivedset1('item1','item2')#WORKSb=derivedset2('item1','item2')#DOESN'TWORKTraceback(mostrecentcalllast):File"inheriting-behavi

python - 为什么等效字符串的 ID 之间会出现奇怪的行为?

根据我的理解,如果一个不可变类型的变量被赋值等于另一个相同不可变类型的变量,那么它们应该都引用同一个对象。我正在使用Python2.7.6,不知道这是否是一个错误。这就像我理解的那样:x='ab'y='ab'id(x)==id(y)True但是,通过改变一个字符,这不会表现:x='a#'y='a#'id(x)==id(y)False奇怪的是,并行分配非常不同!x,y='a#','a#'id(x)==id(y)True我不明白这种行为。 最佳答案 你所说的是stringinterning.这是一种内部机制,不能保证两个不同的字符串会存

python - 在显示转换为 float 的图像时出现奇怪的 matplotlib 行为

当范围(0,255)中的常规RGB图像被转换为​​float,然后由matplotlib显示时,图像显示为负片。如果它被转换为uint8,它会正确显示(当然)。这让我很难弄清楚发生了什么,因为我不小心将其中一张图像转换为float。我很清楚,当转换为float时,图像预计在范围(0,1)内,果然,当除以255时,显示的图像是正确的。但是,为什么在范围(0,255)中转换为float的图像会显示为负数?我会期望饱和度(全白)或自动从输入推断范围(并因此正确显示)?如果这些预期的事情中的任何一个发生了,我就能够更快地调试我的代码。我已经包含了重现该行为所需的代码。有谁知道为什么会发生这种情

Python 极其令人费解的正则表达式 unicode 行为

我使用分词器将法语句子拆分成单词,但在处理包含法语字符â的单词时遇到了问题。我试图找出问题所在,最终归结为这个简单的事实:>>>re.match(r"’",u'â',re.U)>>>re.match(r"[’]",u'â',re.U)â与包含'的模式相匹配如果它被放入集成匹配器中。我在UTF-8处理方面有什么问题还是错误?我的python版本是:Python2.7.3(default,Jan22013,13:56:14)[GCC4.7.2]onlinux2编辑:嗯,很尴尬,似乎用u替换模式前缀的r可以解决问题。我想知道为什么官方文档大量使用r然后:(( 最佳

python - django: 'python manage.py migrate' 花费数小时(和其他奇怪的行为)

我对models.py中的一个表进行了一些更改,并尝试使用“pythonmanage.pymigrate”迁移它,这需要几个小时。我只改了三个字段(列)的名字,到现在已经跑了2个多小时了。今天早上我创建表格时,它在几分钟内顺利运行(我认为)。赛季开始是做出改变的模型。这是models.py现在的样子:fromdjango.dbimportmodelsfromdjango.contrib.gis.dbimportmodelsasgismodels#fromdjango.contrib.gisimportadmin#Createyourmodelshere.classLocation(mo

python - 使用缺口形状时 matplotlibs boxplot 的奇怪行为

当我使用“notch”形状时,我在matplotlib的boxplot函数中遇到了一些奇怪的行为。我正在使用我不久前编写的一些代码,但从未遇到过这些问题——我想知道问题出在哪里。有什么想法吗?当我关闭凹口形状时,它看起来很正常代码如下:defboxplot_modified(data):fig=plt.figure(figsize=(8,6))ax=plt.subplot(111)bplot=plt.boxplot(data,#notch=True,#notchshapevert=True,#verticalboxaligmnentsym='ko',#redcircleforoutli