title: Python when to use instance vs static methods
body: <p>I am struggling to understand when it makes sense to use an instance method versus a static method. Also, I don't know if my functions are static since there is not a @staticmethod decorator. Would I be able to access the class functions when I make a call to one of the methods?</p>
  
  <p>I am working on a webscraper that sends information to a database. It’s setup to run once a week. The structure of my code looks like this</p>
  
  <pre><code>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
  </code></pre>
  
  <p>That is the basic structure. The code is functional but I don’t know if I am using the methods (functions?) correctly and potentially missing out on ways to use my code in the future. I may even be writing bad code that will cause errors down the line that are impossibly hard to debug only because I didn’t follow best practices. </p>
  
  <p>After reading about when class and instance methods are used. I cannot see why I would use them. If I want the url built or the data pulled from the website I call the build_url or get_web_data function. I don’t need an instance of the function to keep track of anything separate. I cannot imagine when I would need to keep something separate either which I think is part of the problem. </p>
  
  <p>The reason I think my question is different than the previous questions is: the conceptual examples to explain the differences don't seem to help me when I am sitting down and writing code. I have not run into real world problems that are solved with the different methods that show when I should even use an instance method, yet instance methods seem to be mandatory when looking at conceptual examples of code.</p>
  
  <p>Thank you!</p>