小编Ric*_*kyA的帖子

在golang范围复制之后,所有项目都指向src切片的最后一项

将所有项目从切片(src)复制到新切片(dst)后,dst中的所有项目都指向src的最后一项.

package main

import (
    "fmt"
)

func main() {
    src := []string{"a", "b", "c"}
    dst := []*string{}
    for _, val := range src {
        dst = append(dst, &val)
    }

    for i, s := range dst {
        fmt.Printf("%v - %v\n", i, *s)
    }
}

>>> 0 - c
>>> 1 - c
>>> 2 - c
Run Code Online (Sandbox Code Playgroud)

为什么不将"a"和"b"复制到dst切片中?

range go

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

Python函数作用域导入

我有以下模块:

main.py

import my_import

my_import.a_func()
Run Code Online (Sandbox Code Playgroud)

my_import.py

FOO = "foo"
BAR = []

def a_func():
   BAR.append("bar") #ok
   FOO = FOO + "foo" #UnboundLocalError: 
                     #local variable 'FOO' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

这可能是由于进口,但如何?

[编辑]

从我得到的答案不是导入是crulpit,但后续仍然是奇怪的:

FOO = "foo"
BAR = []
def a_func():
    BAR.append("bar")
    print(FOO)
a_func()
Run Code Online (Sandbox Code Playgroud)

- >打印"foo"

FOO = "foo"
BAR = []
def a_func():
    BAR.append("bar")
    print(FOO)
    FOO = FOO + "foo"    
a_func()
Run Code Online (Sandbox Code Playgroud)

- >失败,"UnboundLocalError:赋值前引用的局部变量'FOO'"并且不打印"foo"

看起来解释器在实际运行代码之前正在查找当前作用域中的赋值.

python python-import

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

Python"if"评估"和"的两个方面?

任何人都可以告诉我为什么以下失败:

teststr = "foo"
if not teststr.isdigit() and int(teststr) != 1:
   pass
Run Code Online (Sandbox Code Playgroud)

有:

ValueError: invalid literal for int() with base 10: 'foo'
Run Code Online (Sandbox Code Playgroud)

在C中,如果&&测试中的第一部分失败,则不再评估右侧.这在Python中是不同的吗?

编辑:我是傻瓜.本and应是or当然的.....

python

0
推荐指数
1
解决办法
127
查看次数

Python异常捕获中的布尔“非”

我尝试构建一个except子句来捕获除 [原文如此] 特定类型异常之外的所有内容:

try:
    try:
        asdjaslk
    except not NameError as ne: #I want this block to catch everything except NameError
        print("!NameError- {0}: {1}".format(ne.__class__, ne))
except Exception as e: #NameError is the only one that should get here
    print("Exception- {0}: {1}".format(e.__class__, e))
Run Code Online (Sandbox Code Playgroud)

语言接受notexcept条款,但什么都不做吧:

>>> Exception- <type 'exceptions.NameError'>: name 'asdjaslk' is not defined
Run Code Online (Sandbox Code Playgroud)

是否有可能做到这一点,或者我应该重新做raise他们?

python exception-handling

0
推荐指数
1
解决办法
683
查看次数

Django 模型`get` 不返回 false

我有一个 Django 应用程序,它检查数据库中是否包含与用户在表单中输入的数字相匹配的数字。如果它们匹配,我已经设法让它重定向到“你赢了”页面,但是当它们不匹配时,它只会给出一个错误,提示“匹配查询不存在”。这是我在 view.py 文件中使用的 if/else 语句:

if Numbers.objects.get(numbers_win = user_number):
     return HttpResponseRedirect('win')
else:
     return HttpResponseRedirect('lose.html')
Run Code Online (Sandbox Code Playgroud)

python django django-views

-1
推荐指数
1
解决办法
1103
查看次数