ما وظيفة المتغير results؟

class Post:
    def __init__(self, id, photo_url, name, body):
        self.id = id
        self.photo_url = photo_url
        self.name = name
        self.body = body

posts = []

class PostStore:
    def get_all(self):
        # get all posts - الحصول على كل المنشورات
        return posts

    def add(self, post):
        # append post - إضافة منشور
        posts.append(post)

    def get_by_id(self, id):
        # search for post by id - id البحث عن منشور بالمعرف
        result = None

        for post in posts:
            if post.id == id:
                result = post
                break

        return result

results ما وظيفة ؟؟؟؟؟؟؟؟؟؟

    result = None

    for post in posts:
        if post.id == id:
            result = post
            break

    return result
انا مش قادر افهم الحته دى
2 Likes

اهلا محمود !
حسب ما فهمت فالدالة get_by_id تقوم بالبحث عن بوست معين عن طريق مقارنة المعرف الخاص بكل بوست post.id بالمعرف id الذي الحقناه بالدالة ك parameter في السطر الأول

في البداية قمنا بتعريف المتغير result واعطيناه القيمة none مبدأيا لأننا لم نبدأ البحث بعد
بعدها تأتي عملية البحث عن البوست و مقارنة المعرفات
اذا وجدنا البوست
المتغير result يخزن تلك البوست
فيصبح لدينا result = post وليس none
وان لم نجد اي بوست فيبقى المتغير result يحمل القيمة none
في النهاية … السطر return result يرجع القيمة النهائية ل result
( اذا وجدنا بوست ف result ترجع post وإلا فإنها تبقى none )
أرجو ان اكون ساعدتك :grinning:

1 Like

سيف شرحها لك وهكذا تكون الصورة وضحت لك، ولكن دعني أشير إلى النقطة المهمة ألا وهي أنك أنت بترجع من الدالة get_by_id ال result هذا، افرض انك لم تقم بعمل declaration للمتغير result والدالة قامت بالبحث عن بوست معين ولم تجده.
شو راح ترجع لما تصل ل return؟
راح يحصل معك خطأ. لأنك ترجع شيء غير موجود
إذا هنا لازم تعطيه قيمة مبدئية وهي None في هذه الحالة ، فإذا هنا راح ترجعلك الدالة إما بوست أو None وبناء على هذا تكمل اللوجيك اللي تريده

2 Likes