2012-11-14 166 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