سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ محمد یارمحمدی
متد getattr و get
جامعه پایتون (وب) ایجاد شده در ۲۰ بهمن ۱۴۰۰

سلام و خسته نباشین خدمت منتورها و استاد گرامی و دوستان

بنده یک سوال داشتم در باب متد getattr که استاد خط 37 یک ورودی اضافه ای None بهش میده خواستم بدونم دلیلش چیه و همینطور به متغییر switch یک None رو میده

و 33 رو من بدون وردی None اجرا کردم مشکلی نداشت ولی متد getattr وقتی بدون None اجراش کردم اومد اجرا شد ولی یه اروری داد که من متوجه نشدم

خواستم بهم توضییح بدین ممنونتون میشم

choice = getattr(self, switch)
TypeError: getattr(): attribute name must be string

سلام امیدوارم عالی باشید

متد getattr مقدار اتریبیوت آبجکت را برمیگرداند اگر اتریبیوت درخواستی وجود نداشته باشد ارور AttributeError رو میدهد

مثلا به کلاس Person دقت کنید

class Person:
   name = "John"
   age = 36

اگر ما بگیم مقدار age رو میخایم مقدار 36 برامون چاپ میشه

getattr(Person, 'age')  # 36

اما اگر مقدار city بخواهیم چون وجود نداره ارور بهمون برگشت داده میشه

getattr(Person, 'city')  # AttributeError

اما درمورد سوالتون دقت کنید پارامتر دوم باید به صورت string داده بشه مثل کاری که من در بالا برای city و age انجام دادم یعنی درون ' ' .

بهترین پاسخ
پوریا شفیعی ۲۱ بهمن ۱۴۰۰، ۰۵:۲۴