我有一个简单的功能,我将称之为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命令行(使用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
请考虑以下代码:
>>> 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)