English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تقوم وظيفة type() في بايثون بإرجاع نوع الكائن أو إرجاع كائن نوع جديد بناءً على المعلمات المقدمة.
يكون لدى وظيفة type() شكلين مختلفين:
type(object) type(name, bases, dict)
إذا تم تمرير object إلى type()، فإن هذه الوظيفة ستعود نوعها.
numbers_list = [1, 2] print(type(numbers_list)) numbers_dict = {1: 'one', 2: 'two'} print(type(numbers_dict)) class Foo: a = 0 foo = Foo() print(type(foo))
نتائج الطلاب
<class 'dict'> <class 'Foo'> <class '__main__.Foo'>
إذا كنت بحاجة إلى التحقق من نوع الكائن، فمن الأفضل استخداموظيفة isinstance() في بايثون، لأن وظيفة isinstance() ستقوم أيضًا بالتحقق مما إذا كان الكائن المقدم هو مثيل للفئة الفرعية.}
إذا تم تقديم الثلاثة معلمات لـtype()، فإنه سيقوم بإرجاع كائن جديدالنوعالعدد.
هذه المتغيرات هي:
المتغيرات | وصف |
---|---|
name | اسم الفئة؛ تصبح الخاصية __name__ |
bases | قائمة الأسس؛ تصبح الخاصية __bases__ |
dict | القائمة، وهي تحتوي على مجال الاسم الخاص بمساحة تعريف الكائن الرئيسية؛ تصبح الخاصية __dict__ |
o1 = type('X', (object,), dict(a='Foo', b=12)) print(type(o1)) print(vars(o1)) class test: a = 'Foo' b = 12 o2 = type('Y', (test,), dict(a='Foo', b=12)) print(type(o2)) print(vars(o2))
نتائج الطلاب
<class 'type'> {'b': 12, 'a': 'Foo', '__dict__': <attribute '__dict__' of 'X' objects>, '__doc__': None, '__weakref__': <attribute '__weakref__' of 'X' objects>} <class 'type'> {'b': 12, 'a': 'Foo', '__doc__': None}
في البرنامج، استخدمناوظيفة بايثون vars()لإرجاع الخاصية __dict__.
يمكنك بسهولة تغيير هذه الخاصيات حسب الحاجة. على سبيل المثال، إذا كنت بحاجة إلى تغيير قيمة الخاصية __name__ الخاصة بو1 إلى 'Z'، استخدم:
o1.__name = 'Z'