Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Qt Academy Launch in California!

    Unsolved What does the "yield" keyword do?

    Qt for Python
    python
    2
    3
    114
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      Aliviya last edited by JKSH

      What is the use of the yield keyword in the Python framework? What does it do? [EDIT: Link removed --JKSH]

      For example, I'm trying to understand this code

      def _get_child_candidates(self, distance, min_dist, max_dist):
          if self._leftchild and distance - max_dist < self._median:
              yield self._leftchild
          if self._rightchild and distance + max_dist >= self._median:
              yield self._rightchild  
      
      

      And this is the caller:

      result, candidates = [], [self]
      while candidates:
          node = candidates.pop()
          distance = node._get_dist(obj)
          if distance <= max_dist and distance >= min_dist:
              result.extend(node._values)
          candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
      return result
      

      What happens when the method _get_child_candidates is called? Is a list returned? A single element? Is it called again? When will subsequent calls stop?

      jsulm 1 Reply Last reply Reply Quote 0
      • jsulm
        jsulm Lifetime Qt Champion @Aliviya last edited by

        @Aliviya said in What does the "yield" keyword do?:

        yield

        returns a gerator object which can be iterated to get the values.
        See https://www.guru99.com/python-yield-return-generator.html

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        A 1 Reply Last reply Reply Quote 1
        • A
          Aliviya @jsulm last edited by

          @jsulm said in What does the "yield" keyword do?:

          returns a gerator object which can be iterated to get the values.
          See https://www.guru99.com/python-yield-return-generator.html

          Thank you..It has a great overview of how yield works and how to use it.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post