Adam Ebrahim نشر 17 يونيو 2021 أرسل تقرير نشر 17 يونيو 2021 أريد أن أقوم بتعديل قيمة خاصية في صنف class من خلال نص باسم الخاصية، كالتالي: class Foo: def __init__(self): self.attr1 = True self.attr2 = False foo = Foo() x = "attr1" y = 123 كيف أقوم بتعديل الخاصية المخزنة في المتغير x بقيمة المتغير y؟ 2 اقتباس
0 Wael Aljamal نشر 17 يونيو 2021 أرسل تقرير نشر 17 يونيو 2021 يمكن عمل ذلك باستخدام الدالة __setattr__ كالتالي: object.__setattr__(self, name, value) أي: x = "attr1" y = 123 foo.__setattr__( x, y) 1 اقتباس
1 سمير عبود نشر 17 يونيو 2021 أرسل تقرير نشر 17 يونيو 2021 يُمكن إستخدام الدالتين getattr و setattr للوصول للخاصيات: getattr(x, 'y') <=> x.y setattr(x, 'y', v) <=> x.y = v و هذا تطبيق للدالتين في مثالك: class Foo: def __init__(self): self.attr1 = True self.attr2 = False foo = Foo() x = "attr1" y = 123 setattr(foo, x, y) z = getattr(foo, x) print(z) # 123 1 اقتباس
السؤال
Adam Ebrahim
أريد أن أقوم بتعديل قيمة خاصية في صنف class من خلال نص باسم الخاصية، كالتالي:
كيف أقوم بتعديل الخاصية المخزنة في المتغير x بقيمة المتغير y؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.