سؤال يتعلق بالتحدي الأخير في oop

كيف يمكنني طباعة القائمة كما هي؟ لا أقصد طباعة كل شيء على حدة ولكن طباعة القائمة بالأقواس والفواصل…

أود أن أرى شكلها بعد إضافة الكائنات قد يساعدني ذلك في البحث…

جربت طباعتها باستخدام اسمها فظهر لي أنها قائمة وأن مكانها في الذاكرة كذا كذا…

جزاكم الله خيراً…

إعجاب واحد (1)

[python]

لطباعة قائمة كما هي من داخل كائن، يمكنك تخصيص طريقة __str__ أو __repr__ في الكلاس لتعريف كيفية طباعة الكائن.

إليك مثال بسيط يوضح كيفية القيام بذلك:

class MyClass:
    def __init__(self, items):
        self.items = items

    def __str__(self):
        return str(self.items)

# إنشاء كائن من الكلاس مع قائمة كخاصية
my_object = MyClass([1, 2, 3, 'apple', 'banana', 4.5, True])

# طباعة الكائن
print(my_object)

عند تنفيذ هذا الكود، ستكون النتيجة كما يلي:

[1, 2, 3, 'apple', 'banana', 4.5, True]

في هذا المثال، قمنا بتعريف دالة __str__ لتحويل الخاصية items إلى نص باستخدام str(self.items). يمكننا أيضاً استخدام __repr__ بنفس الطريقة إذا أردنا التأكد من أن طباعة الكائن تتم بالطريقة التي نريدها حتى عند استخدام الدالة repr.

إليك نسخة مع استخدام __repr__ أيضاً:

class MyClass:
    def __init__(self, items):
        self.items = items

    def __str__(self):
        return str(self.items)

    def __repr__(self):
        return f'MyClass({self.items})'

# إنشاء كائن من الكلاس مع قائمة كخاصية
my_object = MyClass([1, 2, 3, 'apple', 'banana', 4.5, True])

# طباعة الكائن
print(my_object)  # يستخدم __str__
print(repr(my_object))  # يستخدم __repr__

النتيجة ستكون:

[1, 2, 3, 'apple', 'banana', 4.5, True]
MyClass([1, 2, 3, 'apple', 'banana', 4.5, True])

بهذه الطريقة، يمكنك التحكم بكيفية طباعة الكائن وقائمته بشكل ملائم.

إعجابَين (2)

جزاكم الله خيراً
لم أعرف كيف أطبعها عندما استخدمت المدخلات… واضفت اكثر من معامل… واضفت عليها كائنات أخرى باستخدام append

إعجاب واحد (1)