【发布时间】:2019-03-29 14:39:29
【问题描述】:
问题:
如何重命名已导入模块类中存在的方法(函数)?
总体思路:
#Current Generalized Code
from module import myImportedClass
X = myImportedClass.some_very_long_method_name_that_exists(*args).another_method(*args)
#Becomes Shorter Code
X = myImportedClass.SVLM(*args).AM(*args)
具体例子:
我有几个可以工作的网络抓取脚本,但想在风格上将长行代码重写为 PEP8 风格。我遇到的一个重复问题是冗长的方法名称(尤其是来自 Selenium webdriver 模块),一个导入的模块类。
下面是一段摘录,表达了我想做的事情。然而,经过搜索,我不确定如何实现这一目标。我是否需要在我的 Python 脚本中编写某种本地类/函数以允许别名的行为类似于原始方法名称?
#Current Example with Long Imported Class Method Names
from selenium import webdriver
d = webdriver.Firefox()
def load_job_cards(counter, job_key, job_type, filestem='newjobs'):
posts = d.find_elements_by_xpath("//div[@class=' row result clickcard']")
job_names = [j.find_element_by_css_selector("a[class='turnstileLink']").get_attribute('title') for j in posts]
#...more code...
#Would Like Imported Class Method to be Renamed, e.g.:
def load_job_cards(counter, job_key, job_type, filestem='newjobs'):
posts = d.find_elements_by_xpath("//div[@class=' row result clickcard']")
job_names = [j.fcss("a[class='turnstileLink']").ga('title') for j in posts]
#...more code...
作为参考,导入的 WebDriver 类方法记录在以下脚本中:
【问题讨论】:
-
我已经意识到在一般示例中需要额外的细微差别(这在特定示例中可能很明显)。虽然很长的方法名称
find_element_by_css_selector(*arg)是模块webdriver的一个方法,但该方法需要适用于帖子的每个元素,它本身是在webdriver上执行的另一个方法的 Web 元素。
标签: python python-3.x selenium class methods