🐍 Python & Raspberry 🐍
8.21K subscribers
1.92K photos
125 videos
623 files
1.23K links
Python- Raspberry Pi-AI-IOT
ادمین : فرهاد ناصری زاده
@farhad_naserizadeh
@farhad3412

گروه پایتون
@Python_QA
تبادل
@mmtahmasbi
کانال مرتبط
@new_mathematical
@micropython_iot
@c_micro
اینستاگرام
http://Instagram.com/python_raspberry
Download Telegram
آیا کلمه کلیدی del آبجکت رو پاک میکند ؟

متاسفانه با یه سرچ سریع میشه دید که خیلی از وبسایت ها یا مقالات نوشتن که del باعث پاک شدن آبجکت میشه. ولی در حقیقت اصلا اینطور نیست. پاک شدن آبجکت کار del نیست. توی پایتون دوتا mechanism هست برای از بین بردن آبجکت هایی که دیگه نیازشون نداریم:
1- Reference counting
2- Garbage collector
اولی میگه اگر تعداد رفرنس هایی که به یک آبجکت هستن به صفر برسه اون آبجکت پاک میشه.
دومی وقتی وارد عمل میشه که ما circular reference یا self reference داشته باشیم که اولی میگه دوتا آبجکت به هم دیگه reference داشته باشن دومی میگه یه آبجکت که نقش container و بازی میکنه یه رفرنس به خودش داشته باشه. تو این حالت هیچوقت reference به صفر نمیرسه در نتیجه آبجکت با reference counting پاک نمیشه. اینجا garbage collector میاد وسط.

حالا del چیکار میکنه ؟ فقط میاد اون اسم رو پاک میکنه! گفته بودیم متغیر ها اسم ها یا سیمبل هایی هستن که اشاره میکنن به یه آبجکتی توی مموری. یک رفرنس هستن!

برای تستش بریم درباره داندر del صحبت کنیم. این متد هیچ ربطی به کلمه کلیدی del نداره. این متد زمانی call میشه که آبجکت داره از بین میره! بهش finalizer میگن(destructor خیلی واژه صحیحی نیست). این رو پیاده سازی میکنیم تا بفهمیم کی آبجکت از بین رفت.

همونطور که تو عکس میبینید:
http://www.upsara.com/images/j708789_.png

- تو cell شماره ۲ تنها رفرنس به آبجکت ساخته شده obj هست پس با del کردنش آبجکت هم پاک میشه.
- تو cell شماره ۴ ولی نشد چرا ؟ چون علاوه بر خودش یه رفرنس هم داخل لیست داشت.
- شما برای کم کردن رفرنس یه آبجکت میتونید متغیرش رو به یه آبجکت دیگه assign کنید. الان اگه cell شماره ۷ رو ببینید، دقیقا همون کاری و کرده که del داشته میکرده. تنها فرقش اینکه با زدن del دیگه اون name عه obj موجود نیست.
- خارج شدن از scope یه فاکشن هم یه رفرنس کم میکنه ازش. توی cell شماره ۸ چون آبجکت اون تو ساخته شده بوده و تنها رفرنس بوده بعد از اتمام فانکشن آبجکت delete میشه.
با متد getrefcount از ماژول sys میتونید تعداد رفرنس های به یه آبجکت رو ببینید.

🖊 SorousH
حاصل تکه کد زیر چیست؟
import numpy as np
a=np.arange(6).reshape(2,3).reshape(1,-1) print(a)
Anonymous Quiz
16%
[0,1,2,3,4,5,6]
24%
[[0] [1] [2] [3] [4] [5]]
18%
[[0,1,2,3,4,5]]
26%
TypeError
16%
[[0 1 2 3 4 5]]
✔️ تا حالا حتما عباراتی همچون
- call by reference
- call by value
و ... چنین عباراتی که نحوه و انواع پاس داده شدن متغیرها و ... توی زبان‌های برنامه نویسی رو بیان میکنن، شنیدید؛ و ممکنه براتون سوال شده باشه که آیا چنین چیزایی توی پایتون هم داریم؟ اگه داریم عملکرد‌شون چیه؟

پاسخ کوتاه: خیر اینارو نداریم :)
پاسخ بلند:

📺 https://youtu.be/_AEJHKGk9ns

آقای ند بچلدر (Ned Batchelder) از بزرگای پایتون.
Twitter: @nedbat

نویسنده و maintainer عه: لایبرری بسیار حقِ coverage.py
Twitter: @coveragepy


©@raspberry_python
This media is not supported in your browser
VIEW IN TELEGRAM
تصویر ارسالی تلسکوپ جیمز وب عمیق ترین نمای مادون قرمز کیهان که تاکنون بشر مشاهده کرده است.

@raspberry_python
✔️ در پایتون 3.11 چه میگذرد؟

آنتونی شاو سخنرانی عمیقی در مورد چیزهای جدید در پایتون ۳.۱۱ ارائه کرده و تغییرات مهمش رو برشمرده؛ همچنین پیشنهادات حرفه‌ای هم در مورد optimization داده 😁

https://www.youtube.com/watch?v=kJMyomV0S50&t=60s


©@raspberry_python
Forwarded from خواجه توییتر
بر قبر پدر مردم آزار توسط ویندوز در چهار حرکت

1=> cmd
2=> run as administrator
3=> echo 216.58.214.142 www.google.com >> %WINDIR%\system32\drivers\etc\hosts
4=> echo 216.58.214.142 www.google.com >> %WINDIR%\system32\drivers\etc\hosts

= Mah Azadi
@kntutweeter
هروخت اینجوری شدید اصن نگران نباشید 😂🙄

تو ویندوز میتونید دکمه
Start+v
رو بزنید و رو لینوکس‌های ابونتو هم میتونید از این ریپازیتوری استفاده کنید
https://github.com/CristianHenzel/ClipIt

@raspberry_python
گروه 6000 نفره برنامه نویسی پایتون

👇👇👇👇😍

@python_QA
🐍 Python & Raspberry 🐍
حاصل تکه کد زیر چیست؟
import numpy as np
a=np.arange(6).reshape(2,3).reshape(1,-1) print(a)
سلام به همه امیدوارم حالتون عالی باشه😉🙋🏻‍♀️🙋🏻‍♀️
اگر آماده آید بریم سراغ این تمرین و علت درستی گزینه آخر رو با هم بررسی کنیم.
بسیار خوب
از خط اول شروع میکنیم به توضیح دادن
۱)import numpy as np
خب تو این خط اومدیم اول نامپای رو ایمپورت کردیم . اگر نامپای رو نداریم میتونی با دستور زیر خیلی راحت نصب کنی:
pip install numpy
اگر هم از برنامه ای مثل پایچارم استفاده میکنید خیلی راحت از تو خود برنامه نصب می‌کنی.
و خیلی راحت ازش استفاده میکنی .
🌺🌺🌺🌺🌺🌺🌺

۲)a=np.arange(6). reshape (2,3). reshape (1,-1)
خب بیا قدم به قدم با هم بریم جلو
np.arange(6)
چی میگه ؟؟؟؟!!!!!
میگه آقا نتیجه من میشه یه آرایه از نوع نامپای ، که آیتم های ۰تا ۶( دقت کن تا ۶، خود ۶ شاملش نمیشه ، اعداد۰,۱,۲,۳,۴,۵ آیتم های آرایه مون میشه ) رو دارم. پس اگر فقط np.arange(6) رو پرینت کنیم بهمون خروجی زیر رو نشون میده:
print(np.arange(6))------->[0 1 2 3 4 5]
🌺🌺🌺🌺🌺🌺🌺🌺

خب بریم مرحله بعدی :
مرحله بعدی ما reshape(2،3) رو داریم ‌. این میگه چی؟ ، میگه آقا اون آرایه بالایی که به دست آوردیم رو بیا shape اش رو تغییر بده . الان آرایه بالا shape اش به صورت (1,6) هستش یعنی ۱ سطر داره و ۶ ستون. حالا ما می‌خوابیم shape است رو تغییر بدیم ، برای این کار میایم از reshape استفاده میکنیم و shape,مورد نظر رو بهش میدیم . به طور مثال تو این تمرین داریم :
reshape (2,3)
یعنی دو تا سطر و سه تا ستون .
حالا خروجی رو ببینیم با هم :
[[0 1 2]
[3 4 5]]
🌺🌺🌺🌺🌺🌺🌺🌺

حالا بریم سراغ مرحله آخر :
reshape(1,-1)
خب reshape که shape ارایه رو تغییر میده ، آماااا محتویات داخلش چرا منفیه؟؟
مگه منفی هم می‌تونه باشه ؟؟؟🙄😐🤔
پاسخ :بلی . وقتی مولفه اول منفی باشه ، میاد تمام آیتم های آرایه رو تو یه ستون قرار میده و اگر مولفه دوم منفی باشه میاد تمام آیتم های آرایه رو تو یه سطر قرار میده . الان تو این تمرین چون مولفه دوم منفی هستش پس ، تمام آیتم ها رو تو یه سطر جمع می‌کنه.
پس خروجی میشه :
[[0 1 2 3 4 5]]
و این گونه است که جواب صحیح میشه گزینه آخر 😎😎😉😉
اگر یه قسمت رو خوب نگفتم ریپلای کنید تا با هم درستش کنیم.😉
و سخن آخر:
مهم ترین چیز در زندگی چیست؟
فقط یک چیز مهم است، شادی
هرگز، هرگز اجازه نده کسی شادی تو را از تو بگیرد
“کریستین بوبن”😍💪🏻😇
✒️ shaghayegh
به نظرت حاصل تکه کد بالا کدوم یک از گزینه ها می‌تونه باشه ؟؟؟😉😉
گزینه درست رو حدس بزن 🪐😉
Anonymous Quiz
39%
A
9%
B
28%
C
25%
D