小编the*_*eye的帖子

python中的全局变量警告

我有一个python 2.6脚本(是的,我知道我应该升级到至少2.7),看起来像这样:

ret_code = 0

def some_func()
  global ret_code
  ...

if __name__ == '__main__':
  global ret_code
  ...
Run Code Online (Sandbox Code Playgroud)

现在,如果我运行代码,我会收到警告:*语法警告:名称'ret_code'在全局声明全局ret_code之前分配给*

为什么我会收到此警告?

我这样做可以解决问题:

def some_func()
      global ret_code
      ...

if __name__ == '__main__':
  global ret_code
  ret_code = 0 #assign 0 here instead of above
  ...
Run Code Online (Sandbox Code Playgroud)

仍然没有回答我的问题.原始代码有什么问题?

python global python-2.6 python-2.7

44
推荐指数
1
解决办法
4万
查看次数

删除字符串中的最后一个路径组件

我有一条路:

myPath = "C:\Users\myFile.txt"
Run Code Online (Sandbox Code Playgroud)

我想删除结束路径,以便字符串只包含:

"C:\Users"
Run Code Online (Sandbox Code Playgroud)

到目前为止,我正在使用拆分,但它只是给了我一个列表,并且我坚持到这一点.

myPath = myPath.split(os.sep)
Run Code Online (Sandbox Code Playgroud)

python string

43
推荐指数
3
解决办法
4万
查看次数

在base64编码时删除尾随"="

我注意到每当我对base64进行编码时,最后会附加一个"=".我可以删除这个字符然后通过添加它来可靠地解码它,或者这是危险的吗?换句话说,是否总是附加"=" ,或仅在某些情况下?

我希望我的编码字符串尽可能短,这就是为什么我想知道我是否总能删除"="字符并在解码之前将其添加回来.

base64

43
推荐指数
6
解决办法
6万
查看次数

为什么`False是False是False`评价为'True`?

为什么在Python中以这种方式进行评估:

>>> False is False is False
True
Run Code Online (Sandbox Code Playgroud)

但是当试用括号时,表现如预期的那样:

>>> (False is False) is False
False
Run Code Online (Sandbox Code Playgroud)

python python-internals

41
推荐指数
4
解决办法
3610
查看次数

fetch()发送小写标题键

我正在编写一个HTTP API库,用于Atom Electron.它基于fetch.服务器不受我的控制,但是用PHP编写,我可以看到它以区分大小写的方式检查标头.

我的代码是这样的:

const headers = new Headers();
headers.append('Authorization', `Bearer ${key}`);

const init = {
    method: 'GET',
    headers: headers 
} 

const req = new Request(baseUrl + '/items?format=json');
return fetch(req, init);
Run Code Online (Sandbox Code Playgroud)

请求被拒绝并403 FORBIDDEN出错.当我在Electron Newtork面板中查看请求时,请求标头已存在但Authorization已成为authorization.

我知道fetch()只是遵循HTTP标准,但是有一种简单的方法可以fetch()在我提供时发送标头吗?

javascript

41
推荐指数
2
解决办法
4910
查看次数

冒号和逗号在python列表中的含义是什么?

我在python脚本中遇到了这个,list[:, 1]我试图弄清楚逗号的作用.

python numpy

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

matplotlib是否具有在轴坐标中绘制对角线的功能?

Matplotlib轴具有函数axhline,axvline用于在给定的y或x坐标(分别)上绘制水平或垂直线,与Axes上的数据比例无关.

绘制恒定对角线是否有类似的功能?例如,如果我有一个具有相似域的变量的散点图,通常有用的是知道它们是否高于或低于以下行y = x:

mean, cov = [0, 0], [(1, .6), (.6, 1)]
x, y = np.random.multivariate_normal(mean, cov, 100).T
y += x + 1
f, ax = plt.subplots(figsize=(6, 6))
ax.scatter(x, y, c=".3")
ax.plot([-3, 3], [-3, 3], ls="--", c=".3")
ax.set(xlim=(-3, 3), ylim=(-3, 3))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这当然可以通过抓取轴限制(ax.get_xlim()等等)以编程方式完成,但是a)需要一些额外的步骤而b)在更多数据可能最终出现在图上并改变极限的情况下是脆弱的.(实际上在某些情况下,只需添加常量线就可以拉伸轴).

例如,最好是这样做,ax.axdline(ls="--", c=".3")但是不清楚matplotlib代码库中是否存在这样的东西.所有你需要做的是修改axhline代码绘制[0, 1]轴上的坐标两xy,我想.

python numpy matplotlib

37
推荐指数
4
解决办法
3万
查看次数

为什么在JavaScript中"Object instanceof Function"和"Function instanceof Object"都返回true?

为什么在JavaScript中同时执行Object instanceof FunctionFunction instanceof Object返回true

我在Safari WebInspector中尝试过它.

javascript function object

37
推荐指数
3
解决办法
8126
查看次数

Python的列表索引必须是整数,而不是元组"

我两天来一直在反对这个问题.我是python和编程的新手,所以这类错误的其他例子对我没什么帮助.我正在阅读列表和元组的文档,但没有找到任何有用的东西.任何指针都将非常感激.没有必要寻找答案,只需要更多的资源来查看.我使用的是Python 2.7.6.谢谢

measure = raw_input("How would you like to measure the coins? Enter 1 for grams 2 for pounds.  ")

coin_args = [
["pennies", '2.5', '50.0', '.01'] 
["nickles", '5.0', '40.0', '.05']
["dimes", '2.268', '50.0', '.1']
["quarters", '5.67', '40.0', '.25']
]

if measure == 2:
    for coin, coin_weight, rolls, worth in coin_args:
        print "Enter the weight of your %s" % (coin)
        weight = float(raw_input())
        convert2grams = weight * 453.592

        num_coin = convert2grams / (float(coin_weight))
        num_roll = round(num_coin / (float(rolls)))
        amount = …
Run Code Online (Sandbox Code Playgroud)

python list

35
推荐指数
3
解决办法
17万
查看次数

如何在node.js中实际使用Q promise?

这可能是一个noob问题,但我是承诺的新手,并试图找出如何在node.js中使用Q.

我看到教程以a开头

promiseMeSomething()
    .then(function (value) {}, function (reason) {});
Run Code Online (Sandbox Code Playgroud)

但是我没有意识到它究竟.then来自哪里.我想它来自

var outputPromise = getInputPromise()
    .then(function (input) {}, function (reason) {});
Run Code Online (Sandbox Code Playgroud)

但是哪里getInputPromise()来的?我发现以前没有提到它.


我已将它包含在我的项目中

var Q = require('q');

// this is suppose, the async function I want to use promise for
function async(cb) {
    setTimeout(function () {
        cb();
    }, 5000);
}

async(function () {
    console.log('async called back');
});
Run Code Online (Sandbox Code Playgroud)

我如何在我的例子中使用Q.then

javascript node.js promise q

33
推荐指数
1
解决办法
3万
查看次数