2012-11-14 56 views
1

如何从另一个Python脚本调用下面的MLStripper类?从Python脚本调用类

主要的Python脚本:

import ConfigParser 
    import os 
    from HTMLParser import HTMLParser 

    c = imaplib_connect.open_connection() 
    try: 
     config = ConfigParser.ConfigParser() 
     config.read([os.path.expanduser('~/reader.config')]) 
     test = MLStripper.strip_tags("<br>testing</br>") 
     print test 

类我想打电话:

class MLStripper(HTMLParser): 
      def __init__(self): 
       self.reset() 
       self.fed = [] 
      def handle_data(self, d): 
       self.fed.append(d) 
      def get_data(self): 
       return ''.join(self.fed) 

      def strip_tags(html): 
       s = MLStripper() 
       s.feed(html) 
       return s.get_data() 
+1

开始[一个Python教程](http://docs.python.org/ 2 /教程/)。 “召集一堂课”并不是真正的开始。 – millimoose

+0

如果你想调用一个类,你应该使用'__call__'魔术方法。 –

回答

3

类需要先instatiated:通过工作

import ConfigParser 
import os 
from HTMLParser import HTMLParser 

c = imaplib_connect.open_connection() 
try: 
    config = ConfigParser.ConfigParser() 
    config.read([os.path.expanduser('~/reader.config')]) 
    ML = MLStripper() 
    test = ML.strip_tags("<br>testing</br>") 
    print test 
+0

你需要导入'MLStripper' –

+0

即,如果'class MLStripper'在一个名为mlstripper.py的文件中,在你的文件的顶部你应该说'from mlstripper import MLStripper' –

+0

我现在已经在同一个文件中。我将它移到顶端,因为在实例化类之前需要先定义类。我得到测试= ML.strip_tags(“
测试
”) TypeError:strip_tags()只需要1个参数(2给出),但我不明白为什么strip_tags是说我传递2个参数,任何想法? – c12