あるコードを実行したくて、変数の取得方法がわからなかったのでので簡易化したコードで質問します。
参考書を見て、「global変数を使うことで、関数内からグローバル変数にアクセスできる」」ということは理解しているのですが、

def f(x):
    global y
    y=x+2
    return x+2

x=2
print(y)
>>4
#誤ったコードです。実行されません。(イメージ的にこうなってほしい、みたいな・・?)

のように、逆に関数内部の変数をグローバル変数として関数外部から取り出すことは不可能ですか?

P.S.)本当にしたかったこと

class Queue:#練習用にQueueの一部機能を手書きしています。
    def __init__(self):
        self.items=[]

    def is_empty(self):
        return self.items==[]

    def enqueue(self,item):
        self.items.insert(0,item)#enqueuメソッドの引数itemをキューの一番最初(インデックス値=0)の要素として追加します。
        #insertメソッドは、".insert(index値,要素)"によってリストにオブジェクトを追加します。

    def dequeue(self):
        return self.items.pop()

    def size(self):
        return len(self.items)

import time
import random

def simulate_line(till_show,max_time):
    pq=Queue()
    tix_sold=[]

    for i in range(100):
        pq.enqueue("person" + str(i))

    t_end=time.time()+till_show
    now=time.time()
    while now<t_end and not pq.is_empty():
        now=time.time()
        r=random.randint(0,max_time)
        time.sleep(r)
        person=pq.dequeue()
        print(person)
        tix_sold.append(person)

    return tix_sold

sold=simulate_line(5,1)
print(tix_sold)

のコードにおいて、tix_soldのリストの個数が10個を超えるまで関数を繰り返し実行するようにしたかったです。