السلام عليكم
شباب ارجو ان تشرحو لي عمل المكتبات التالية :
__builtin__ __future__ __main__.
وايضا اذا كان ممكن شرح عمل __init__
وجزاكم الله خيرا
السلام عليكم
شباب ارجو ان تشرحو لي عمل المكتبات التالية :
__builtin__ __future__ __main__.
وايضا اذا كان ممكن شرح عمل __init__
وجزاكم الله خيرا
لا إله إلا الله محمد رسول الله عليه الصلاة والسلام
سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

بإذن الله سأتعلم python و php ولو نصف كل لغة
__builtin__ تتعامل معها يومياً وتحوي الوظائف والدوال وأنواع البيانات الأساسية في بايثون:
>>> import __builtin__ >>> >>> dir(__builtin__) ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BufferError', 'BytesWarnin g', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'Floatin gPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'Indentat ionError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'None', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWar ning', 'ReferenceError', 'RuntimeError', 'RuntimeWarning', 'StandardError', 'StopIteration', 'Syntax Error', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'True', 'TypeError', 'UnboundLocal Error', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'Unicod eWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '__debu g__', '__doc__', '__import__', '__name__', '__package__', 'abs', 'all', 'any', 'apply', 'basestring' , 'bin', 'bool', 'buffer', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'cmp', 'coerce', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval ', 'execfile', 'exit', 'file', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasa ttr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'intern', 'isinstance', 'issubclass', 'iter', 'le n', 'license', 'list', 'locals', 'long', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'raw_input', 'reduce', 'reload', 'repr' , 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', ' tuple', 'type', 'unichr', 'unicode', 'vars', 'xrange', 'zip'] >>>
فائدتها أنها تتيح لك تجاول المشكلة التي ستحصل لو استخدمت اسم تستخدمه بايثون. مثلاً هنا أنشأت دالة اسمها xrange:
>>> def xrange(): ... print 'Range??' ... >>>
لو حاولت استدعاء xrange تلك الخاصة بالمدى لن تعمل، سيعتقد مفسر بايثون أنك تريد الدالة التي أنشأتها قبل قليل:
>>> for i in xrange(0, 3): ... print i ... Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: xrange() takes no arguments (2 given) >>>
الحل أن تستخدم __builtin__.xrange لتجاوز هذه المشكلة:
>>> for i in __builtin__.xrange(0, 3): ... print i ... 0 1 2 >>>
__future__ تحتوي وظائف ستضاف في اصدارات لاحقة من بايثون لكنها متوفرة في اصدارك:
>>> import __future__ >>> >>> dir(__future__) ['CO_FUTURE_ABSOLUTE_IMPORT', 'CO_FUTURE_DIVISION', 'CO_FUTURE_PRINT_FUNCTION', 'CO_FUTURE_UNICODE_L ITERALS', 'CO_FUTURE_WITH_STATEMENT', 'CO_GENERATOR_ALLOWED', 'CO_NESTED', '_Feature', '__all__', '_ _builtins__', '__doc__', '__file__', '__name__', '__package__', 'absolute_import', 'all_feature_name s', 'division', 'generators', 'nested_scopes', 'print_function', 'unicode_literals', 'with_statement '] >>>
يمكنك معرفة متى أضيفت الخاصية هكذا، سنجرب print_function:
>>> __future__.print_function _Feature((2, 6, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 65536) >>>
أضيفت في الأصدار 2.6.0 الأولي وستعتمد في 3.0. مثلاً لنجربها:
>>> print 'Hey!'
Hey!
>>>
>>> from __future__ import print_function
>>>
>>> print 'Hey!'
File "<stdin>", line 1
print 'Hey!'
^
SyntaxError: invalid syntax
>>> print('Hey!')
Hey!
>>>في البداية طبعت print القديمة النصّ 'Hey!' وبعدما استوردنا print_function لم تعد تطبع حتى تضيف أقواس، دالة. في بايثون 3 لم تعد print "جملة statement"، مثلها مثل if\else\while بل أصبحت دالة.
__main__ اسم للوحدة الرئيسية في البرنامج، ملف الـpy الذي يبدأ منه برنامجك. بايثون لاتوجد بها دالة رئيسية تضمن أن البرنامج مبدوء من ملف الـpy الصحيح مثلها مثل لغات كـc\c++\java وغيرها. لذا فالأغلبية يستخدمونها كدالة رئيسية هكذا:
#!pythonif __name__ == '__main__': print 'start ...'
بالنسبة لـ__init__ فهو البناء في بايثون. لما تنشيء class وتريد تمرير متغيرات للكائن الذي أنشأته منه فستحتاج لـ__init__:
>>> class Window(object): ... def __init__(self, height, width): ... self.height = height ... self.width = width ... >>> >>> window = Window(400, 600) # هنا يأتي دورها لما تنشيء الكائن >>> >>> print window.height 400 >>> print window.width 600 >>>
إطلع على البرمجة الكائنية OOP لمبرمج Python الحديث إذا أردت معرفة المزيد حولها وحول البرمجة الكائنية.
تم تعديل هذه المشاركة بواسطة Mr.B في 9 مارس 2013 في 17:53
هذا الموضوع مغلق.