小编wja*_*rea的帖子

'staticmethod'对象不是可调用的开关/ case

我有这个代码:

class A(object):
    @staticmethod
    def open():
        return 123
    @staticmethod
    def proccess():
        return 456

    switch = {
        1: open,
        2: proccess,   
        }

obj = A.switch[1]()
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我不断收到错误:

TypeError: 'staticmethod' object is not callable
Run Code Online (Sandbox Code Playgroud)

怎么解决?


python

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

在python 3和2中工作的Unicode文字

所以我有一个python脚本,我更喜欢在python 3.2和2.7上工作,只是为了方便.

有没有办法让unicode文字在两者中都有效?例如

#coding: utf-8
whatever = '????'
Run Code Online (Sandbox Code Playgroud)

上面的代码需要python 2.x(u'')中的unicode字符串和python 3.x中的小'u'导致语法错误.

无论如何我找到了答案,我所需要的只是:

#coding: utf-8
whatever = '????'
Run Code Online (Sandbox Code Playgroud)

由于https://meta.stackexchange.com/questions/49922/should-i-continue-adding-a-question-if-i-have-found-the-answer-myself,我仍然在发布这个问题

对于好奇,我正在努力:http://code.google.com/p/pytitle/

python unicode python-2.x python-3.x unicode-literals

37
推荐指数
1
解决办法
9760
查看次数

没有找到 Python;不带参数运行以从 Microsoft Store 安装,或从“设置”中禁用此快捷方式

我刚刚开始编码,我试图下载一个 GUI,但终端一直给我这个错误 Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.

我正在尝试使用此命令安装它 python -m pip install --upgrade pip setuptools virtualenv

python python-3.x windows-10

35
推荐指数
9
解决办法
19万
查看次数

何时在Python中使用"while"或"for"

当我在Python中使用while循环或for循环时,我发现了问题.看起来人们更喜欢使用for循环(更少的代码行?).是否有任何具体情况我应该使用其中一种?这是个人偏好的问题吗?到目前为止我读过的代码让我觉得它们之间存在很大差异.

python loops

32
推荐指数
5
解决办法
7万
查看次数

如何使用另一个命令输出管道来初始化bash数组?

有没有办法管道输出一个列出一堆数字的命令(每个数字在一个单独的行中)并用这些数字初始化一个bash数组?

详细信息:此列表列出了在以下日期范围内提交的3个更改列表编号.然后通过管道输出cut以进一步过滤它以获得更改列表编号.

p4 changes -m 3 -u edk -s submitted @2009/05/01,@now | cut -d ' ' -f 2
Run Code Online (Sandbox Code Playgroud)

例如:

422311
543210
444000
Run Code Online (Sandbox Code Playgroud)

如何将此列表存储在bash数组中?

bash shell

32
推荐指数
2
解决办法
4万
查看次数

为什么在快速调用时,Python类的id不是唯一的?

我在python中做了一些事情(使用python 3.3.3),我遇到了令我困惑的事情,因为我的理解课每次被调用时都会得到一个新的id.

让我们说你在一些.py文件中有这个:

class someClass: pass

print(someClass())
print(someClass())
Run Code Online (Sandbox Code Playgroud)

以上返回相同的id,这让我感到困惑,因为我正在调用它所以它不应该是相同的,对吧?当连续两次调用同一个类时,python是如何工作的?当我等待几秒钟时,它给出了不同的id,但是如果我像上面的例子一样,它似乎不会那样工作,这让我感到困惑.

>>> print(someClass());print(someClass())
<__main__.someClass object at 0x0000000002D96F98>
<__main__.someClass object at 0x0000000002D96F98>
Run Code Online (Sandbox Code Playgroud)

它返回相同的东西,但为什么呢?我也注意到范围,例如

for i in range(10):
    print(someClass())
Run Code Online (Sandbox Code Playgroud)

当快速调用类时,python是否有任何特殊原因?我甚至不知道python是这样做的,还是可能是一个bug?如果它不是一个bug,有人可以向我解释如何修复它或一个方法,以便每次调用方法/类时它生成一个不同的id?我很困惑这是怎么做的,因为如果我等了,它确实会改变,但如果我尝试两次或更多次调用同一个类则不会.

python class python-3.x

32
推荐指数
2
解决办法
9888
查看次数

Python中的高效求和

我正在尝试在Python中有效地计算求和的总和:

WolframAlpha能够计算出过高的 n 值:sum 的总和

我有两种方法:for循环方法和np.sum方法。我认为 np.sum 方法会更快。然而,它们在 n 很大之前都是相同的,之后 np.sum 会出现溢出错误并给出错误的结果。

我正在尝试找到计算这个总和的最快方法。

import numpy as np
import time

def summation(start,end,func):
    sum=0
    for i in range(start,end+1):
        sum+=func(i)
    return sum

def x(y):
    return y

def x2(y):
    return y**2

def mysum(y):
    return x2(y)*summation(0, y, x)

n=100

# method #1
start=time.time()
summation(0,n,mysum)
print('Slow method:',time.time()-start)

# method #2
start=time.time()
w=np.arange(0,n+1)
(w**2*np.cumsum(w)).sum()
print('Fast method:',time.time()-start)
Run Code Online (Sandbox Code Playgroud)

python performance sum cumsum

32
推荐指数
3
解决办法
5599
查看次数

如何更改 Pandas 系列的索引值?

如何将 Pandas Series 的索引值从默认的常规整数值更改为我拥有的列表中的值?例如

x = pd.Series([421, 122, 275, 847, 175])

index_values = ['2014-01-01', '2014-01-02', '2014-01-03', '2014-01-04',
               '2014-01-05'] 
Run Code Online (Sandbox Code Playgroud)

如何将列表中的日期index_values作为我创建的系列中的索引?

python series pandas

29
推荐指数
2
解决办法
4万
查看次数

为什么不能添加 PPA 死蛇?

我有 ubuntu 版本 20.04,我想从 shell 安装 python 3.6。在sudo apt install software-properties-common我尝试使用该add-apt-repository ppa:deadsnakes/ppa命令但收到此错误后:

Cannot add PPA: 'ppa:~deadsnakes/ubuntu/ppa'.
ERROR: '~deadsnakes' user or team does not exist
Run Code Online (Sandbox Code Playgroud)

我是否忘记了任何步骤或者存储库不再工作?

python ubuntu apt python-3.x

29
推荐指数
3
解决办法
7万
查看次数

在python中查找对象的所有引用

在python中查找对象的所有引用的好方法是什么?

我问的原因是看起来我们有"内存泄漏".我们正在从Web浏览器将图像文件上载到服务器.每次执行此操作时,服务器上的内存使用量会与刚刚上载的文件的大小成比例增加.这个内存永远不会被python垃圾收集器释放,所以我认为可能有杂散引用指向未被删除或超出范围的图像数据,即使在每个请求结束时也是如此.

我觉得能够问python会很好:"什么引用仍然指向这个内存?" 这样我就可以弄清楚是什么让垃圾收集免于它.

目前我们在Heroku服务器上运行Python和Django.

非常感谢任何建议和想法,非常感谢!

python django garbage-collection memory-leaks

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