小编use*_*936的帖子

为什么我的python函数没有定义,当它存在于同一个文件中时?

我有一个简单的功能,我将称之为myFunction.它需要两个参数,对它们执行一些计算,并返回结果.

我也有一个类,MyClass它有一个构造函数,其头部如下:

__init__(self, bar, fun=myFunction):
Run Code Online (Sandbox Code Playgroud)

当我尝试在这个类中运行任何东西时,我收到以下错误:

MyClass
    def __init__(self, bar, fun=myFunction):
NameError: name 'myFunction' is not defined
Run Code Online (Sandbox Code Playgroud)

如果我删除这个类,我可以在Python Shell中使用myFun,那么这笔交易是什么?

python function defined nameerror

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

从Python命令行调用Python时,为什么Python无法找到并运行我的脚本?

我在python命令行(使用python 2.7),并尝试运行Python脚本.我的操作系统是Windows 7.我已将目录设置为包含所有脚本的文件夹,使用:

os.chdir("location").

os.getcwd() 返回此位置.

当我输入:

python myscript.py

我收到此错误:

File "<stdin>", line 1

python myscript.py
              ^
Run Code Online (Sandbox Code Playgroud)

SyntaxError: invalid syntax.

我做错了什么?

我正在尝试运行的脚本的第一个未注释的行:

from game import GameStateData

python windows directory execute

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

功能python列表切片是否真的不对称?

请考虑以下代码:

>>> a = [0, 1, 2]
>>> for i in range(len(a)):
>>>   print a[0:i]

[]
[0]
[0, 1]
Run Code Online (Sandbox Code Playgroud)

但是,当我翻转代码从列表的另一端获取切片时,它不再起作用:

>>> for i in range(len(a)):
>>>   print a[-i:]

[0, 1, 2]
[2]
[1, 2]
Run Code Online (Sandbox Code Playgroud)

使第二段代码工作的唯一方法似乎是颠倒列表,第一种方式,并在打印之前反转每一段.有一个更好的方法吗?我有时使用这种类型的循环,我希望我的代码尽可能干净.

编辑:在两个循环中,我从左到右迭代.如果我为第二个循环翻转迭代方向,它也可以工作.如果我翻转第一个循环的迭代方向,它也有与第二个循环相同的打嗝:

>>> for i in range(len(a)):
>>>   print a[i-1::-1]

[2, 1, 0]
[0]
[1, 0]
Run Code Online (Sandbox Code Playgroud)

python arrays list slice symmetry

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

标签 统计

python ×3

arrays ×1

defined ×1

directory ×1

execute ×1

function ×1

list ×1

nameerror ×1

slice ×1

symmetry ×1

windows ×1