آیا کلمه کلیدی 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
متاسفانه با یه سرچ سریع میشه دید که خیلی از وبسایت ها یا مقالات نوشتن که 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)
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
- call by reference
- call by value
و ... چنین عباراتی که نحوه و انواع پاس داده شدن متغیرها و ... توی زبانهای برنامه نویسی رو بیان میکنن، شنیدید؛ و ممکنه براتون سوال شده باشه که آیا چنین چیزایی توی پایتون هم داریم؟ اگه داریم عملکردشون چیه؟
پاسخ کوتاه: خیر اینارو نداریم :)
پاسخ بلند:
📺 https://youtu.be/_AEJHKGk9ns
آقای ند بچلدر (Ned Batchelder) از بزرگای پایتون.
Twitter: @nedbat
نویسنده و maintainer عه: لایبرری بسیار حقِ coverage.py
Twitter: @coveragepy
〰〰〰〰〰〰〰
©@raspberry_python
YouTube
Ned Batchelder - Facts and Myths about Python names and values - PyCon 2015
"Speaker: Ned Batchelder
The behavior of names and values in Python can be confusing. Like many parts of Python, it has an underlying simplicity that can be hard to discern, especially if you are used to other programming languages. Here I'll explain how…
The behavior of names and values in Python can be confusing. Like many parts of Python, it has an underlying simplicity that can be hard to discern, especially if you are used to other programming languages. Here I'll explain how…
This media is not supported in your browser
VIEW IN TELEGRAM
تصویر ارسالی تلسکوپ جیمز وب عمیق ترین نمای مادون قرمز کیهان که تاکنون بشر مشاهده کرده است.
@raspberry_python
@raspberry_python
✔️ در پایتون 3.11 چه میگذرد؟
آنتونی شاو سخنرانی عمیقی در مورد چیزهای جدید در پایتون ۳.۱۱ ارائه کرده و تغییرات مهمش رو برشمرده؛ همچنین پیشنهادات حرفهای هم در مورد optimization داده 😁
https://www.youtube.com/watch?v=kJMyomV0S50&t=60s
〰〰〰〰〰
©@raspberry_python
آنتونی شاو سخنرانی عمیقی در مورد چیزهای جدید در پایتون ۳.۱۱ ارائه کرده و تغییرات مهمش رو برشمرده؛ همچنین پیشنهادات حرفهای هم در مورد optimization داده 😁
https://www.youtube.com/watch?v=kJMyomV0S50&t=60s
〰〰〰〰〰
©@raspberry_python
YouTube
What’s New in Python 3.11
Anthony Shaw – Microsoft’s own Senior Open Source Advocate specializing in Python and Cloud solutions gives an exhaustive speech on what’s new in Python 3.11 at NIX MultiConf #5.
Having years of field experience under his belt, Anthony sheds the light on…
Having years of field experience under his belt, Anthony sheds the light on…
Forwarded from Persian python
سلام دوستان وقتتون بخیر
ویدیو پلی لیست آموزش برنامه نویسی شئ گرایی پایتون آپلود شد
قسمت :4
موضوع : Format - Equal - Not Equal - Hashable
امیدوارم که مفید بوده باشه
میتونین از لینک زیر تماشا کنید
https://youtu.be/l2SJLbhIJeM
لینک گیت هاب :
https://github.com/persianpython/PythonObjectOriented
ویدیو پلی لیست آموزش برنامه نویسی شئ گرایی پایتون آپلود شد
قسمت :4
موضوع : Format - Equal - Not Equal - Hashable
امیدوارم که مفید بوده باشه
میتونین از لینک زیر تماشا کنید
https://youtu.be/l2SJLbhIJeM
لینک گیت هاب :
https://github.com/persianpython/PythonObjectOriented
YouTube
آموزش برنامه نویسی شئ گرایی در پایتون مقدماتی تا پیشرفته ( قسمت چهارم ) Object Orinted Programming
سلام به کانال یوتیوبی پرشین پایتون خوش آمدید
تو این پلی لیست سعی دارم که مباحث شئ گرایی رو از مقدماتی تا پیشرفته توضیح بدم
که شامل دوستانی که اصلا از شئ گرایی و کلاس ها اطلاعاتی ندارن هم میشه
در این پلی لیست بجز موارد شئ گرایی درمورد تمیز نویسی و اینکه چطور…
تو این پلی لیست سعی دارم که مباحث شئ گرایی رو از مقدماتی تا پیشرفته توضیح بدم
که شامل دوستانی که اصلا از شئ گرایی و کلاس ها اطلاعاتی ندارن هم میشه
در این پلی لیست بجز موارد شئ گرایی درمورد تمیز نویسی و اینکه چطور…
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
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
تو ویندوز میتونید دکمه
Start+v
رو بزنید و رو لینوکسهای ابونتو هم میتونید از این ریپازیتوری استفاده کنید
https://github.com/CristianHenzel/ClipIt
@raspberry_python
Forwarded from 🐍 Python & Raspberry 🐍
🐍 Python & Raspberry 🐍
حاصل تکه کد زیر چیست؟
import numpy as np
a=np.arange(6).reshape(2,3).reshape(1,-1) print(a)
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
اگر آماده آید بریم سراغ این تمرین و علت درستی گزینه آخر رو با هم بررسی کنیم.
بسیار خوب
از خط اول شروع میکنیم به توضیح دادن
۱)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
Convert CSV to PDF file in python
https://www.pythonforbeginners.com/basics/convert-csv-to-pdf-file-in-python
@raspberry_python
https://www.pythonforbeginners.com/basics/convert-csv-to-pdf-file-in-python
@raspberry_python
Object Detection Using Mask R-CNN with TensorFlow 2.0 and Keras.
https://blog.paperspace.com/mask-r-cnn-tensorflow-2-0-keras/
Mask_RCNN project: https://github.com/matterport/Mask_RCNN
@raspberry_python
https://blog.paperspace.com/mask-r-cnn-tensorflow-2-0-keras/
Mask_RCNN project: https://github.com/matterport/Mask_RCNN
@raspberry_python
Paperspace by DigitalOcean Blog
Training Mask R-CNN with TensorFlow 2.0 and Keras | Paperspace Blog
This tutorial shows how to adapt the Mask R-CNN GitHub project for training and inference using TensorFlow 2.0 and Keras.
Forwarded from Persian python (Mohammad)
سلام دوستان وقتتون بخیر
ویدیو پلی لیست FastApi آپلود شد
قسمت : 28
موضوع : قسمت دوم پروژه
امیدوارم که مفید بوده باشه
میتونین از لینک زیر تماشا کنید
https://youtu.be/Ni1oyaD8CZw
فایل های این ویدیو در گیت هاب :
https://github.com/persianpython/FastApi
ویدیو پلی لیست FastApi آپلود شد
قسمت : 28
موضوع : قسمت دوم پروژه
امیدوارم که مفید بوده باشه
میتونین از لینک زیر تماشا کنید
https://youtu.be/Ni1oyaD8CZw
فایل های این ویدیو در گیت هاب :
https://github.com/persianpython/FastApi
YouTube
آموزش Api نویس با FastApi Python ( Instagram قسمت دوم پروژه )
سلام به کانال یوتیوبی پرشین پایتون خوش آمدید
FAST API
یک وب میکرو فریمورک پایتون هست که با شعار عملکرد بالا
(high performance)
، یادگیری آسان ، کد زنی سریع و آماده برای تولید توسط آقای سباستین رامیرز تولید شده
ویژگی های اصلی این فریمورک :
سرعت : عملکرد…
FAST API
یک وب میکرو فریمورک پایتون هست که با شعار عملکرد بالا
(high performance)
، یادگیری آسان ، کد زنی سریع و آماده برای تولید توسط آقای سباستین رامیرز تولید شده
ویژگی های اصلی این فریمورک :
سرعت : عملکرد…