عبارت yield

اگر تا این جا ما را همراهی کرده باشید در دستور return گفتیم که برای برگرداندن یک آرایه با استفاده از دستور return کمی نیاز به اطلاعات دارد و برای گرفتن آن ها گفتیم که به این جا مراجعه کنید

درس این جلسه ما کمی پیشرفته تر است به همین دلیل نیاز دارد تا شما کمی اطلاعات درباره نحوه ذخیره سازی متغیر ها داشته باشید

پس ما ابتدا به آن می پردزیم سپس به دستور yield !


حافظه ( Ram )

همانطور که گفته شد تمام متغیر ها تابع ها و کلاس ها و بطور کلی برنامه ها در رم ذخیره می شوند اما چطور رم مجموعه ای از خانه های 8 بیتی است که یک بایت را می سازند یعنی هر هشت بیت یک بایت را تشکیل می دهند بطور کلی می توان رم را یک جدول به طول n و عرض 8 فرض کرد که n به مقدار حجم رم شما بستگی دارد مثلا حجم یک رم می تواند 512 مگابایت یا 1 گیگ و مقدار های دیگر باشد

هر کدام از سطر های این جدول یک شماره دارد که به آن آدرس می گویند مثلا یک آدرس 0x00F94EB0 است می تواید این آدرس را در پایتون وارد کنید و ببینید به شما چه عددی را نشان می دهد البته توجه داشته باشید که آدرس ها در پایتون لزوما به یک سطر اشاره نمی کند و کمی پیچیده تر است

در ادامه می گوییم که این آدرس ها به چه درد می خورند


تغییر در توابع با استفاده از آدرس آن ها

خب این جا قصد داریم با استفاده از آدرس یک تابع کمی در آن تغییر ایجاد کنیم بطور مثال اطلاعات مربوط به تابع را دستکاری کنیم


>>> def hib():
	"""This is example
what you thing"""
	print "HIB"
	return 0

>>> a = hib
>>> a
<function hib at 0x00F9B0F0>
>>> print a.func_doc
This is example
what you thing
]
>>> a.func_doc = """ I Thing You Are Just
A Layer
Not you are!?"""
>>> print hib.func_doc
 I Thing You Are Just
A Layer
Not you are!?

نکته 1 :اگر شما در کد a = hib پرانتز بگذارید تا بع اجرا و مقدار برگشتی آن یعنی 0 در متغیر a ذخیره می شود اما اگر پرانز را بردارید تابع اجرا نشده و تنها آدرس آن ذخیره خواهد شد

به علت کمبود وقت ادامه آن در چند روز آینده آماده خواهد شد


صفحه قبلی: پایتون
صفحه بعدی: PyGTK