PYHINTS Telegram 27
Python Hints
بنظرتون خروجی print چی هست ؟ چرایی قضیه رو هم توضیح بدید ؟ اینم یک سوال مصاحبه هست؛ بخاطر اینکه به نظر گروهی از افراد خروجی عجیب یا اشتباه هست که خب نیست و طبق منطق scope بندی کلاس‌ها توی پایتون کاملا رفتار درست هست. پ.ن : اینکه میگم سوال مصاحبه منظورم این…
جواب سوال :

classScope says hello
['classScope', 'classScope', 'classScope']
['@pyHints', '@pyHints', '@pyHints']

چیزی که به نظر بعضی افراد عجیب هست رفتار متفاوت
list_1, list_2
هست؛ همینجا توضیح بدم که توابع - متد‌ها (انواع متدها منظورم هست چه
class bounded
چه
instance bounded
و حتی
static method
) همگی Scope رو از parent میگیرند توی این کد میشه global :

سوال ممکنه پیش بیاد: پس متد hello چرا داره classScope رو چاپ می‌کنه ؟
دلیلش واضح هست چون class bound method هست و خود کلاس رو بعنوان پارارمتر اول میگیره و اتفاقا چون scope خودش گلوبال هست برای دسترسی به classScope باید از cls.name استفاده کنیم.

اما مورد دوم و سوم ؛
list_1
که توی قانون بالا نیست پس scope اش مربوط به خود کلاس هست در نتیجه classScope رو چاپ می‌کنه
اما چالش سر
list_2
هست؛ دلیل اینکه
@pyHints

رو چاپ می‌کنه اینه که یک list comprehension هست و list comp چیزی نیست جز یک تابع؛ برای همین اونهایی که فکر میکنند این رفتار عجیب یا اشتباه هست مشخصا نحوه عملکرد و جزئیات پایتون رو نمی‌شناسند.


@pyHints
👍31🤯13🌚42😐1



tgoop.com/pyHints/27
Create:
Last Update:

جواب سوال :

classScope says hello
['classScope', 'classScope', 'classScope']
['@pyHints', '@pyHints', '@pyHints']

چیزی که به نظر بعضی افراد عجیب هست رفتار متفاوت
list_1, list_2
هست؛ همینجا توضیح بدم که توابع - متد‌ها (انواع متدها منظورم هست چه
class bounded
چه
instance bounded
و حتی
static method
) همگی Scope رو از parent میگیرند توی این کد میشه global :

سوال ممکنه پیش بیاد: پس متد hello چرا داره classScope رو چاپ می‌کنه ؟
دلیلش واضح هست چون class bound method هست و خود کلاس رو بعنوان پارارمتر اول میگیره و اتفاقا چون scope خودش گلوبال هست برای دسترسی به classScope باید از cls.name استفاده کنیم.

اما مورد دوم و سوم ؛
list_1
که توی قانون بالا نیست پس scope اش مربوط به خود کلاس هست در نتیجه classScope رو چاپ می‌کنه
اما چالش سر
list_2
هست؛ دلیل اینکه
@pyHints

رو چاپ می‌کنه اینه که یک list comprehension هست و list comp چیزی نیست جز یک تابع؛ برای همین اونهایی که فکر میکنند این رفتار عجیب یا اشتباه هست مشخصا نحوه عملکرد و جزئیات پایتون رو نمی‌شناسند.


@pyHints

BY Python Hints




Share with your friend now:
tgoop.com/pyHints/27

View MORE
Open in Telegram


Telegram News

Date: |

Just as the Bitcoin turmoil continues, crypto traders have taken to Telegram to voice their feelings. Crypto investors can reduce their anxiety about losses by joining the “Bear Market Screaming Therapy Group” on Telegram. Healing through screaming therapy The best encrypted messaging apps Telegram Channels requirements & features SUCK Channel Telegram
from us


Telegram Python Hints
FROM American