首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Python空格的有关问题

2012-09-25 
Python空格的问题__metaclass__ type # super only works with new-style classesdef checkIndex(key):

Python空格的问题
__metaclass__ = type # super only works with new-style classes 

def checkIndex(key): 
  """ 
  Is the given key an acceptable index? 
  To be acceptable, the key should be a non-negative integer. If it 
  is not an integer, a TypeError is raised; if it is negative, an 
  IndexError is raised (since the sequence is of infinite length). 
  """ 
  if not isinstance(key, (int, long)): raise TypeError 
  if key<0: raise IndexError 
   
class ArithmeticSequence: 
  def __init__(self, start=0, step=1): 
  """ 
  Initialize the arithmetic sequence. 
  start - the first value in the sequence 
  step - the difference between two adjacent values 
  changed - a dictionary of values that have been modified by 
  the user 
  """ 
  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): 
  """ 
  Get an item from the arithmetic sequence. 
  """ 
  checkIndex(key) 
  try: 
  return self.changed[key] # Modified? 
  except KeyError: # otherwise... 
  return self.start + key*self.step # ...calculate the value 
   
  def __setitem__(self, key, value): 
  """ 
  Change an item in the arithmetic sequence. 
  """ 
  checkIndex(key) 
  self.changed[key] = value # Store the changed value 


上面是我从电子书上复制的代码,运行后提示有缩进问题,谁能帮我排查一下?谢谢!!! 


另外,有没有什么工具可以使缩进不正确的python代码缩进正确?我曾经就见过eclipse格式化Java代码,请问有对应的Python工具吗?

[解决办法]
总结前面所述:
1.python中,没有(类似于其他语言可用的,比如SourceFormatX之类的)代码格式话工具,即意味着,你无法用工具,打开python文件,直接点击某个按钮,就可以帮你全部格式化好了。
2.只能通过手工去格式化你的python代码
所谓手工,那就是,把属于每个函数(def关键字)所属代码,按照自己对代码的内在逻辑的理解,去一行行的缩进
此工作,目前只能手工做,好像也没有其他更加方便的方法。
3.单独针对手工一行行的处理python代码,不同的工具中,实现的效率也会不同。
推荐使用Notepad++,因为此软件有很多方便你格式化Python代码的功能:
(1)可以显示所有特殊字符,包括空格,TAB键,行尾符等
具体参考:
http://www.crifan.com/files/doc/docbook/crifan_rec_soft/release/html/crifan_rec_soft.html#npp_func_show_special_char
(2)支持将TAB键自动转换为空格
目的在于,对于Python这样的语言,是靠缩进来决定代码逻辑的,所以对于缩进,TAB键和(4个连续的)空格,两者之间不是等价的,会产生语法错误的。
此时就可以利用Notepad++的,将TAB键自动转为(默认为4个,可以自定义个数)空格,实现很方便的代码格式化。
具体参考:
http://www.crifan.com/files/doc/docbook/crifan_rec_soft/release/html/crifan_rec_soft.html#npp_func_space_replace_tab

总之,需要手动处理Python代码,但是用Notepad++去处理,可以极大地提高效率。

热点排行