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()