我很难理解何时使用实例方法与静态方法更有意义。另外,我不知道我的函数是否是静态的,因为没有 @staticmethod 装饰器。当我调用其中一种方法时,我可以访问类函数吗?
我正在开发一个将信息发送到数据库的网络爬虫。它设置为每周运行一次。我的代码结构如下所示
import libraries...
class Get:
def build_url(url_paramater1, url_parameter2, request_date):
return url_with_parameters
def web_data(request_date, url_parameter1, url_parameter2): #no use of self
# using parameters pull the variables to look up in the database
for a in db_info:
url = build_url(a, url_parameter2, request_date)
x = requests.Session().get(url, proxies).json()
#save data to the database
return None
#same type of function for pulling the web data from the database and parsing it
if __name__ == ‘__main__’:
Get.web_data(request_date, url_parameter1, url_parameter2)
Parse.web_data(get_date, parameter) #to illustrate the second part of the scrapper
这就是基本结构。该代码是功能性的,但我不知道我是否正确使用了这些方法(函数?),并且可能会错过将来使用我的代码的方法。我什至可能正在编写糟糕的代码,这些代码会导致难以调试的错误,因为我没有遵循最佳实践。
在阅读了何时使用类和实例方法之后。我不明白为什么要使用它们。如果我想要构建 url 或从网站中提取数据,我调用 build_url 或 get_web_data 函数。我不需要该函数的实例来单独跟踪任何内容。我无法想象我什么时候需要将我认为是问题的一部分的东西分开。
我认为我的问题与前面的问题不同的原因是:当我坐下来编写代码时,解释差异的概念示例似乎对我没有帮助。我还没有遇到现实世界的问题,这些问题可以用不同的方法来解决,这些方法显示我什至应该使用实例方法,但在查看代码的概念示例时,实例方法似乎是强制性的。
谢谢!