freeCodeCamp/guide/arabic/python/data-structures/objects/index.md

7.6 KiB

title localeTitle
The Python Objects كائنات بايثون

في بيثون ، كل شيء كائن .

تمثل الكائنات مجموعة منطقية من السمات. السمات هي البيانات و / أو الوظائف. عندما يتم إنشاء كائن في Python يتم إنشاؤه بهوية ونوع وقيمة .

في اللغات الأخرى ، الأوليات هي قيم لا تحتوي على خصائص (سمات). على سبيل المثال ، في javascript undefined ، undefined null ، boolean ، string ، number ، symbol (الجديد في ECMAScript 2015) هي مواد أولية.

في بايثون ، لا توجد أوليات. None ، أو منطقي ، أو سلاسل ، أو أرقام ، أو حتى الدوال كلها كائنات بغض النظر عن كيفية إنشائها.

يمكننا توضيح ذلك باستخدام بعض الوظائف المدمجة:

الثوابت المضمنة None و True و False هي كائنات :

نحن اختبار None كائن هنا.

`>>> id(None) 4550218168

type(None) <class 'NoneType'> dir(None) [bool', 'class', 'delattr', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'init', 'le', 'lt', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'setattr', 'sizeof', 'str', 'subclasshook'] issubclass(type(None), object) True `

بعد ذلك ، دعونا نفحص True .

`>>> id(True) 4550117616

type(True) <class 'bool'> dir(True) ['abs', 'add', 'and', 'bool', 'ceil', 'class', 'delattr', 'dir', 'divmod', 'doc', 'eq', 'float', 'floor', 'floordiv', 'format', 'ge', 'getattribute', 'getnewargs', 'gt', 'hash', 'index', 'init', 'int', 'invert', 'le', 'lshift', 'lt', 'mod', 'mul', 'ne', 'neg', 'new', 'or', 'pos', 'pow', 'radd', 'rand', 'rdivmod', 'reduce', 'reduce_ex', 'repr', 'rfloordiv', 'rlshift', 'rmod', 'rmul', 'ror', 'round', 'rpow', 'rrshift', 'rshift', 'rsub', 'rtruediv', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'truediv', 'trunc', 'xor', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes'] issubclass(type(True), object) True `

لا يوجد سبب لترك خارج False !

`>>> id(False) 4550117584

type(False) <class 'bool'> dir(False) ['abs', 'add', 'and', 'bool', 'ceil', 'class', 'delattr', 'dir', 'divmod', 'doc', 'eq', 'float', 'floor', 'floordiv', 'format', 'ge', 'getattribute', 'getnewargs', 'gt', 'hash', 'index', 'init', 'int', 'invert', 'le', 'lshift', 'lt', 'mod', 'mul', 'ne', 'neg', 'new', 'or', 'pos', 'pow', 'radd', 'rand', 'rdivmod', 'reduce', 'reduce_ex', 'repr', 'rfloordiv', 'rlshift', 'rmod', 'rmul', 'ror', 'round', 'rpow', 'rrshift', 'rshift', 'rsub', 'rtruediv', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'truediv', 'trunc', 'xor', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes'] issubclass(type(False), object) True `

سلاسل ، حتى عندما تم إنشاؤها بواسطة القيم الحرفية سلسلة ، هي أيضا الكائنات .

`>>> id("Hello campers!") 4570186864

type('Hello campers!') <class 'str'> dir("Hello campers!") ['add', 'class', 'contains', 'delattr', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'getitem', 'getnewargs', 'gt', 'hash', 'init', 'iter', 'le', 'len', 'lt', 'mod', 'mul', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'rmod', 'rmul', 'setattr', 'sizeof', 'str', 'subclasshook', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] issubclass(type('Hello campers!'), object) True `

الشيء نفسه مع الأرقام

`>>> id(42) 4550495728

type(42) <class 'int'> dir(42) ['abs', 'add', 'and', 'bool', 'ceil', 'class', 'delattr', 'dir', 'divmod', 'doc', 'eq', 'float', 'floor', 'floordiv', 'format', 'ge', 'getattribute', 'getnewargs', 'gt', 'hash', 'index', 'init', 'int', 'invert', 'le', 'lshift', 'lt', 'mod', 'mul', 'ne', 'neg', 'new', 'or', 'pos', 'pow', 'radd', 'rand', 'rdivmod', 'reduce', 'reduce_ex', 'repr', 'rfloordiv', 'rlshift', 'rmod', 'rmul', 'ror', 'round', 'rpow', 'rrshift', 'rshift', 'rsub', 'rtruediv', 'rxor', 'setattr', 'sizeof', 'str', 'sub', 'subclasshook', 'truediv', 'trunc', 'xor', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes'] issubclass(type(42), object) True `

وظائف هي كائنات أيضا

في بايثون ، تعتبر الدوال كائنات من الدرجة الأولى.

تعتبر الدوال في Python أيضًا كائنات تم إنشاؤها باستخدام هوية ونوع وقيمة . هم أيضا يمكن أن تنتقل إلى وظائف أخرى:

`>>> id(dir) 4568035688

type(dir) <class 'builtin_function_or_method'> dir(dir) ['call', 'class', 'delattr', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'init', 'le', 'lt', 'module', 'name', 'ne', 'new', 'qualname', 'reduce', 'reduce_ex', 'repr', 'self', 'setattr', 'sizeof', 'str', 'subclasshook', 'text_signature'] issubclass(type(dir), object) True `

من الممكن أيضًا ربط الدالات بالاسم وتسمى الدالة المندمجة باستخدام هذا الاسم:

`>>> a = dir

print(a) a(a) ['call', 'class', 'delattr', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'init', 'le', 'lt', 'module', 'name', 'ne', 'new', 'qualname', 'reduce', 'reduce_ex', 'repr', 'self', 'setattr', 'sizeof', 'str', 'subclasshook', 'text_signature'] `

مصادر: