Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。


6
django的model.save()为什么不调用full_clean()?
我只是好奇是否有人知道,除非有理由将django的orm不保存在模型中,否则它不会在模型上调用“ full_clean”。 请注意,当您调用模型的save()方法时,不会自动调用full_clean()。若要为自己创建的模型运行一步模型验证,则需要手动调用它。 django的完整档案 (注意:报价已针对Django 1.6更新...之前的django文档也对ModelForms提出了警告。) 人们为什么不希望这种行为有充分的理由?我想如果您花时间向模型添加验证,则希望每次保存模型时都运行验证。 我知道如何使一切正常工作,我只是在寻找一种解释。

6
什么是实现__hash __()的正确和好方法?
什么是正确的好方法__hash__()? 我说的是一个返回哈希码的函数,然后该哈希码用于将对象插入哈希表(又名字典)。 当__hash__()返回一个整数并用于将对象“绑定”到哈希表中时,我假设返回的整数的值应均匀分配给公共数据(以最大程度地减少冲突)。获得这样的价值观是什么好习惯?碰撞是个问题吗?就我而言,我有一个小类,它充当一个容器类,其中包含一些整数,一些浮点数和一个字符串。

1
对于Python 3.x整数,比位移快两倍?
我正在查看sorted_containers的来源,很惊讶地看到这一行: self._load, self._twice, self._half = load, load * 2, load >> 1 这load是整数。为什么在一个位置使用位移,而在另一位置使用乘法?移位可能比整数除以2快,但这是合理的,但是为什么不还用移位代替乘法呢?我对以下情况进行了基准测试: (时间,分) (班次,班次) (时间,班次) (平移,除法) 并发现#3始终比其他替代方法快: # self._load, self._twice, self._half = load, load * 2, load >> 1 import random import timeit import pandas as pd x = random.randint(10 ** 3, 10 ** 6) def test_naive(): a, b, …

4
是否可以忽略带有pylint的单个特定行?
标头中包含以下行: import config.logging_settings 这实际上改变了我的python日志记录设置,但是pylint认为这是未使用的导入。我一般不希望删除unused-import警告,因此可以忽略这一行吗? 我不介意.pylintrc为此项目准备一个,因此更改配置文件的答案将被接受。 否则,这样的事情也将不胜感激: import config.logging_settings # pylint: disable-this-line-in-some-way
150 python  pylint 

23
滚动或滑动窗口迭代器?
我需要在序列/迭代器/生成器上可迭代的滚动窗口(又称滑动窗口)。可以将默认Python迭代视为一种特殊情况,其中窗口长度为1。我当前正在使用以下代码。有没有人有更多的Python风格,更少的冗长或更有效的方法来执行此操作? def rolling_window(seq, window_size): it = iter(seq) win = [it.next() for cnt in xrange(window_size)] # First window yield win for e in it: # Subsequent windows win[:-1] = win[1:] win[-1] = e yield win if __name__=="__main__": for w in rolling_window(xrange(6), 3): print w """Example output: [0, 1, 2] [1, 2, …
150 python  algorithm 

9
根据输入参数模拟python函数
我们已经将Mock用于python已有一段时间了。 现在,我们要模拟一个函数 def foo(self, my_param): #do something here, assign something to my_result return my_result 通常,模拟此方法的方式是(假设foo是对象的一部分) self.foo = MagicMock(return_value="mocked!") 即使我多次调用foo(),我也可以使用 self.foo = MagicMock(side_effect=["mocked once", "mocked twice!"]) 现在,我面临一种情况,当输入参数具有特定值时,我想返回一个固定值。因此,如果说“ my_param”等于“ something”,那么我想返回“ my_cool_mock” 这似乎可以在python的嘲笑上使用 when(dummy).foo("something").thenReturn("my_cool_mock") 我一直在寻找如何通过Mock实现相同的目标而没有成功? 有任何想法吗?

16
在python中读取文件的前N行
我们有一个很大的原始数据文件,我们希望将其修剪到指定的大小。我在.net c#方面经验丰富,但是想在python中做到这一点,以简化事情,并且不感兴趣。 我将如何在python中获取文本文件的前N行?使用的操作系统会对实施产生影响吗?
150 python  file  head 


12
在熊猫中用NaN替换空白值(空白)
我想在包含空格(任意数量)的Pandas数据框中找到所有值,并用NaN替换这些值。 有什么想法可以改善吗? 基本上我想把这个: A B C 2000-01-01 -0.532681 foo 0 2000-01-02 1.490752 bar 1 2000-01-03 -1.387326 foo 2 2000-01-04 0.814772 baz 2000-01-05 -0.222552 4 2000-01-06 -1.176781 qux 变成这个: A B C 2000-01-01 -0.532681 foo 0 2000-01-02 1.490752 bar 1 2000-01-03 -1.387326 foo 2 2000-01-04 0.814772 baz NaN 2000-01-05 -0.222552 NaN …
150 python  pandas  dataframe 

6
anaconda更新所有可能的软件包吗?
我尝试了conda search --outdated,其中有很多过时的软件包,例如scipy是0.17.1,但最新的是0.18.0。但是,当我这样做时conda update --all。它不会更新任何软件包。 更新1 conda update --all --alt-hint Fetching package metadata ....... Solving package specifications: .......... # All requested packages already installed. # packages in environment at /home/user/opt/anaconda2: # 更新2 我可以分别更新那些软件包。我能做conda update scipy。但是,为什么我不能一口气更新它们呢?
150 python  anaconda 

2
将MATLAB代码转换为Python的工具
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 改善这个问题 我的MS论文中有一堆MATLAB代码,现在我想将其转换为Python(使用numpy / scipy和matplotlib)并作为开源分发。我知道MATLAB与Python科学库之间的相似之处,手动转换它们的时间不会超过两周(前提是我每天都会努力一段时间)。我想知道是否已经有任何工具可以进行转换。


3
带有参数数据的Python请求发布
这是对API调用的原始请求: POST http://192.168.3.45:8080/api/v2/event/log?sessionKey=b299d17b896417a7b18f46544d40adb734240cc2&format=json HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: application/json Content-Length: 86 Host: 192.168.3.45:8080 Connection: Keep-Alive User-Agent: Apache-HttpClient/4.1.1 (java 1.5) {"eventType":"AAS_PORTAL_START","data":{"uid":"hfe3hf45huf33545","aid":"1","vid":"1"}}""" 该请求返回成功(2xx)响应。 现在,我尝试使用发送此请求requests: >>> import requests >>> headers = {'content-type' : 'application/json'} >>> data ={"eventType":"AAS_PORTAL_START","data{"uid":"hfe3hf45huf33545","aid":"1","vid":"1"}} >>> url = "http://192.168.3.45:8080/api/v2/event/log?sessionKey=9ebbd0b25760557393a43064a92bae539d962103&format=xml&platformId=1" >>> requests.post(url,params=data,headers=headers) <Response [400]> 一切对我来说看起来不错,我不太确定自己张贴的错误是什么引起400响应。

6
明确关闭文件重要吗?
在Python中,如果您不调用即可打开文件close(),或者不使用try- finally或“ with”语句而关闭文件,这是问题吗?还是依靠Python垃圾回收来关闭所有文件作为一种编码实践就足够了?例如,如果这样做: for line in open("filename"): # ... do stuff ... ...这是一个问题,因为文件永远无法关闭,并且可能发生阻止文件关闭的异常吗?还是for由于文件超出范围而肯定会在声明结束时将其关闭?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.