Python 在交互式shell中导入时,在定义的类名中获取错误
我写了下面的程序Python 在交互式shell中导入时,在定义的类名中获取错误,python,Python,我写了下面的程序 #! /usr/bin/python class Rectangle: def __init__(self): self.width=0; self.width=0; def setSize(self,size): self.width,self.height = size def getSize(self): return self.width,self.height 程序名为some
#! /usr/bin/python
class Rectangle:
def __init__(self):
self.width=0;
self.width=0;
def setSize(self,size):
self.width,self.height = size
def getSize(self):
return self.width,self.height
程序名为something.py有两种方法可以运行此程序
1) $bash:~/$ python
>>>import something
另一种方式是
2) python -i something.py
对于第一种方法,当我执行
>>>r=Rectangle()
我犯了一个错误
r=Rectangle()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'Rectangle' is not defined
所以名称矩形被定义了,为什么我在这里得到错误
更新
我写了另一个程序
#! /usr/bin/python
def checkIndex(key):
if not isinstance(key, (int, long)): raise TypeError
if key<0: raise IndexError
class ArithmeticSequence:
def __init__(self, start=0, step=1):
self.start = start # Store the start value
self.step = step # Store the step value
self.changed = {} # No items have been modified
def __getitem__(self, key):
checkIndex(key)
try: return self.changed[key]
except KeyError:
return self.start + key*self.step
def __setitem__(self, key, value):
checkIndex(key)
self.changed[key] = value
#/usr/bin/python
def检查索引(键):
如果不是isinstance(键,(int,long)):raise TYPE错误
如果键>>导入另一个
及
>s=算术序列(1,2)
一个人不会得到这样的错误
未定义算术序列....当您选择时,其中定义的名称不会自动添加到全局命名空间中。
您需要执行以下操作:
import something
r = something.Rectangle()
或
关于更新:肯定还有其他事情在进行,你必须以某种方式定义了
算术序列。我无法复制你所描述的。
import something
r = something.Rectangle()
from something import Rectangle
r = Rectangle()