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: |

A new window will come up. Enter your channel name and bio. (See the character limits above.) Click “Create.” Find your optimal posting schedule and stick to it. The peak posting times include 8 am, 6 pm, and 8 pm on social media. Try to publish serious stuff in the morning and leave less demanding content later in the day. Telegram desktop app: In the upper left corner, click the Menu icon (the one with three lines). Select “New Channel” from the drop-down menu. With the administration mulling over limiting access to doxxing groups, a prominent Telegram doxxing group apparently went on a "revenge spree." Those being doxxed include outgoing Chief Executive Carrie Lam Cheng Yuet-ngor, Chung and police assistant commissioner Joe Chan Tung, who heads police's cyber security and technology crime bureau.
from us


Telegram Python Hints
FROM American