class_docstr: Class for storing a causal estimand, typically as a result of the identification step.
docstr: Return a list containing the backdoor variables.
  
  If the calling estimator method is a backdoor method, return the
  backdoor variables corresponding to its target estimand.
  Otherwise, return the backdoor variables for the default backdoor estimand.
docstr_tok: ["Return","a","list","containing","the","backdoor","variables",".","If","the","calling","estimator","method","is","a","backdoor","method",",","return","the","backdoor","variables","corresponding","to","its","target","estimand",".","Otherwise",",","return","the","backdoor","variables","for","the","default","backdoor","estimand","."]
code: def get_backdoor_variables(self, key: Optional[str] = None):
      """Return a list containing the backdoor variables.
  
      If the calling estimator method is a backdoor method, return the
      backdoor variables corresponding to its target estimand.
      Otherwise, return the backdoor variables for the default backdoor estimand.
      """
      if key is None:
          if (
              self.identifier_method
              and self.identifier_method.startswith("backdoor")
          ):
              return self.backdoor_variables[self.identifier_method]
          elif (
              self.backdoor_variables is not None
              and len(self.backdoor_variables) > 0
          ):
              return self.backdoor_variables[self.default_backdoor_id]
          else:
              return []
      else:
          return self.backdoor_variables[key]
  
file_path: dowhy/dowhy/causal_identifier/identified_estimand.py
imports: import copy
  from typing import List, Optional
  import sympy
  from dowhy.utils.api import parse_state
label_desc: Use image node_id 3 for calling the IdentifiedEstimand obj's underlying member method code with example usage: obj.get_backdoor_variables(key) and returns: self, self, self, list