مشاركة حلول: عمل مستودع للمنشورات Post Store

#1

مرحباً جميعاً

المهمة المطلوبة

بإمكانك الإطلاع على المهمة المطلوبة من هنا

كيفية كتابة الأكواد في المنتدى

1 Like
#2
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)
        return posts


    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

2 Likes
#3

عمل رائع يا اسماء… لا ملاحظات, انتقلي للتالي :+1:

1 Like
#4
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): 
        for post in posts:
            return post

    def add(self, post):
        self.post = post
        posts.append(post)
        return posts

    def get_by_id(self, id):
        result = None
        self.id = id 
        for post in posts:
            if post[0] == id:
                result = post
                break
        return result
2 Likes
#5

استلذ اعمل لنا درس عن كبفية تجربة هذا الجزء من فضلك

2 Likes
#6

بالتأكيد !

تستعملي PyCharm أو VSCode ؟

1 Like
#7

لدي مشكلة في دالة get_by_id انها لا ترجع الناتج الصحيح

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)
        return posts

    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

وعند تشغيل ملف store_tests.py يظهر هذا الخطأ AssertionError
واعتقد السبب داله get_by_id ايضا

1 Like
#8

نعم المشكلة في دالة get_by_id

قمت بتجربة الأكواد والمشكلة بسيطة وصغيرة جداً، لاحظ هذا الجزء:

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

أنت تقوم بعمل break في بداية الحلقة، أي أنها غير مرتبطة بالشرط… الصحيح هو:

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

لاحظ الفرق بين الاثنين الأكواد

1 Like
#9
lass post:
    def __init__(self, id, name, photo, body):
        self.id = id
        self.name = name
        self.photo = photo
        self.body = body


posts = []

class poststore:
    def get_by_id(self, id):
        result = None
        for post in posts:
          if post.id == id:
            result = post
            break
    
        return result
    def add(self, post):
        self.post = post
        posts.append(post)
        return posts

    def get_all(self):
        return posts
#10

كل شيء مضبوط يا على :+1:

بالنسبة لأسماء الكلاسات، فحسب pep8 الذي كتبه مؤلفي لغة بايثون، يفنرض أن تكون بهذا الشكل:

Post
PostStore

كل كلمة تبدأ بالحرف كبير… للإطلاع على pep8 (فيها إجماع convention على أمور مختلفة في اللغة).

https://www.python.org/dev/peps/pep-0008/#class-names

1 Like