我正在研究访问多个网站的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
正如我在上面的例子中已经注释过的,在某些情况下,我需要在方法本身内部进行调整,添加代码片段,或者更改字典中变量或值的值等。我怎样才能实现,如果它甚至可能吗?也许我对超级课程的看法很遥远,而且他们并不是我认为的那样。
也许还有其他我没有想过的方法。随意发布您自己的想法如何解决这个问题。我期待着你的回复。谢谢。
答案 0 :(得分:1)
为什么你不能从main方法中调用一些process
函数,进程可以做你想做的任何事情,你甚至可以在派生类中覆盖它,例如。
class WordPress(object):
def newentry(self):
data = get_data()
data = process_data(data)
# do moe generi cthings
def process_data(self):
return data