【发布时间】:2011-12-08 16:06:24
【问题描述】:
我正在编写一个可以访问多个网站的 Python 脚本。我不认为为每个网站编写一个完整的类是一个可行的选择,所以我正在寻找一种方法来尽可能减少代码和重用代码,并尽可能高效地编写它。尽管网站共享相同或相似的引擎(例如 Wordpress),但它们通常在细微的细节上有所不同,例如 cookie 名称、更改的 URL 路径(例如 example.com/signin.php 和 example2.com/login.php)、数据名称和值POST 请求等。
在大多数情况下我可以使用变量,但有时我需要在方法中间从检索到的 url 中找到额外的数据才能继续,这意味着在继续之前添加几行需要处理的代码。我发现理论上对我来说可能的解决方案是使用超类。但我找不到任何信息如何真正“进入”一种方法来进行更改。为了更好地说明我的观点,看看这个例子
class Wordpress(object):
def login(self):
# Do some stuff here
def newentry(self):
# Code to check if I'm logged in code
# and do bunch of other stuff
#
# Retrieve a page that *** sometimes contain important information
# in which case must be processed to continue! ***
data = {'name' : title,
'message' : message,
'icon' : iconid}
# Post new entry here
正如我在上面的示例中已经评论过的那样,在某些情况下,我需要在方法本身内部进行调整,添加代码的 sn-p,或更改变量的值或字典中的值等。我该怎么做实现这一点,如果它甚至可能?也许我对超类的看法已经离谱,而且它们并不是我认为的那样。
也许还有其他我没有想到的方法。随意发表你自己的想法,你将如何解决这个问题。我期待着您的回复。谢谢。
【问题讨论】:
标签: python code-reuse