آموزش کامل داکر 🔥 (ادامه داره)
✔️ ۱۲ - داکرایز کردن یه وبسایت static و نوشتن اولین Dockerfile
👉🏻 https://youtu.be/iUFNYIUsuPc
✔️ ۱۳ - نوشتن اولین docker-composer مون و اجرای کانتینر
👉🏻 https://youtu.be/_1tM3Kvgkos
#داکر
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ ۱۲ - داکرایز کردن یه وبسایت static و نوشتن اولین Dockerfile
👉🏻 https://youtu.be/iUFNYIUsuPc
✔️ ۱۳ - نوشتن اولین docker-composer مون و اجرای کانتینر
👉🏻 https://youtu.be/_1tM3Kvgkos
#داکر
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
💵 درآمد برنامه نویسی چقدر هست؟
در این ویدئو راجع به معامله هایی که توی اتاق هایی با درهای بسته انجام میشه، صحبت میکنیم 😎💰
🖥 مشاهده در یوتوب:
👉 Link: https://youtu.be/uwJpBPqyBzI
#برنامه_نویسی #درآمد #درآمد_برنامه_نویسی
〰️〰️〰️〰️〰️
© @DjangoEx | @AI_Python
در این ویدئو راجع به معامله هایی که توی اتاق هایی با درهای بسته انجام میشه، صحبت میکنیم 😎💰
🖥 مشاهده در یوتوب:
👉 Link: https://youtu.be/uwJpBPqyBzI
#برنامه_نویسی #درآمد #درآمد_برنامه_نویسی
〰️〰️〰️〰️〰️
© @DjangoEx | @AI_Python
✔️ ثروت و درآمد ایلان ماسک از جف بزوس سبقت گرفته و ایلان ماسک با ۲۰۲ بیلیون دلار ثروتمند ترین فرد دنیا شده.
حالا جف بزوس یه توییت زده و از پیشرفت آمازون گفته اما ایلان ماسک براش مدال نفر دوم رو گذاشته 😂
👉 Link: https://www.forbes.com/real-time-billionaires/
👉 Link: https://twitter.com/JeffBezos/status/1447403828505088011
#fun
〰️〰️〰️〰️〰️
© @DjangoEx
حالا جف بزوس یه توییت زده و از پیشرفت آمازون گفته اما ایلان ماسک براش مدال نفر دوم رو گذاشته 😂
👉 Link: https://www.forbes.com/real-time-billionaires/
👉 Link: https://twitter.com/JeffBezos/status/1447403828505088011
#fun
〰️〰️〰️〰️〰️
© @DjangoEx
آموزش کامل داکر 🔥 (ادامه داره)
✔️ ۱۴ - داکرایز کردن یه پروژه ساده فلسک (۱)
👉🏻 https://youtu.be/pn8trTEcCK8
✔️ ۱۵ - داکرایز کردن یه پروژه ساده فلسک (۲)
👉🏻 https://youtu.be/9bbX4Yhqn28
در این دو جلسه ای یه پروژه فلسک رو با ایمیج های nginx و python داکرایز می کنیم. این پروژه ساده است و به عنوان اولین تمرین جدی مون برای کارکردن با Dockerfile و docker-compose و استفاده از دو کانتینر همزمان و .. است (((:
#داکر
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ ۱۴ - داکرایز کردن یه پروژه ساده فلسک (۱)
👉🏻 https://youtu.be/pn8trTEcCK8
✔️ ۱۵ - داکرایز کردن یه پروژه ساده فلسک (۲)
👉🏻 https://youtu.be/9bbX4Yhqn28
در این دو جلسه ای یه پروژه فلسک رو با ایمیج های nginx و python داکرایز می کنیم. این پروژه ساده است و به عنوان اولین تمرین جدی مون برای کارکردن با Dockerfile و docker-compose و استفاده از دو کانتینر همزمان و .. است (((:
#داکر
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ سوال: چرا با وجود این که دو لیست a و b مقدار برابر دارند، اما حجم اشغال شده در حافظه برای لیست b از لیست a بیشتر است؟
سطح: پیشرفته
#quiz #python #data_structure
〰️〰️〰️〰️〰️
© @DjangoEx
سطح: پیشرفته
#quiz #python #data_structure
〰️〰️〰️〰️〰️
© @DjangoEx
👍1
Django Expert
💵 درآمد برنامه نویسی چقدر هست؟ در این ویدئو راجع به معامله هایی که توی اتاق هایی با درهای بسته انجام میشه، صحبت میکنیم 😎💰 🖥 مشاهده در یوتوب: 👉 Link: https://youtu.be/uwJpBPqyBzI #برنامه_نویسی #درآمد #درآمد_برنامه_نویسی 〰️〰️〰️〰️〰️ © @DjangoEx | @AI_Python
✔️ بعد از این ویدئو دوستان عزیز زیادی پیام میدن و راجع به قیمت های مختلف میپرسن، مثلا آیا بعد ۶ ماه میشه به ۵ تومن درآمد رسید؟ آیا بعد یک سال میشه ماهی ۲۰ تومن درآمد داشت؟
لازم دونستم یک نکتهای رو بگم، درآمد شمارو فقط یک نفر مشخص میکنه و اون هم کسی هست که هرروز توی آینه بهش نگاه میکنید. پس سعی کنید اون آدمی که هرروز توی آینه میبینید رو دوست داشته باشید و برای موفق شدنش تلاش کنید:)
درنهایت اینکه باعث خوشحالی من هست ببینم هر کدومتون به درآمدهای بالا و موفقیت های بیشمار برسه و به قول خودمون happy developer باشه. 😊🙏
〰️〰️〰️〰️〰️
© @DjangoEx
لازم دونستم یک نکتهای رو بگم، درآمد شمارو فقط یک نفر مشخص میکنه و اون هم کسی هست که هرروز توی آینه بهش نگاه میکنید. پس سعی کنید اون آدمی که هرروز توی آینه میبینید رو دوست داشته باشید و برای موفق شدنش تلاش کنید:)
درنهایت اینکه باعث خوشحالی من هست ببینم هر کدومتون به درآمدهای بالا و موفقیت های بیشمار برسه و به قول خودمون happy developer باشه. 😊🙏
〰️〰️〰️〰️〰️
© @DjangoEx
[1/2]
✔️ پاسخ سوال: در تصویر 1 لیستی به نام a به طول 5 و محتوای object ایجاد کردهایم. اگر به نمایش این لیست دقت کنید متوجه خواهید شد که تمامی اشیاء موجود در لیست a دارای یک آدرس یکسان در memory هستند. درواقع پایتون در این حالت برای جلوگیری از ساختن یک شئ ثابت به تعداد زیاد، اول یک نمونه از آنرا ساخته و سپس تمامی اعضای آرایه را به آن ارجاع (reference) میدهد. اگر قطعه کد
را اجرا کنیم خروجی 6 (رفرنس) را برمیگرداند. مقدار 5 مورد انتظار است اما آن یک واحد اضافه به دلیل رفرنس موقتی است به عنوان ورودی تابع
اما در حالت دوم داخل loop هربار یک شئ ایجاد میشود و آدرسها تغییر میکند. این موضوع زمانی که قصد مقداردهی اولیه یک لیست با حجم بالا را داریم، هزینه زمانی و حافظهای زیادی دارد.
دلیل تفاوت حجم لیست a و b در حافظه
با دقت به تصویر 2 متوجه خواهید شد که با تعریف لیست a به روش اول، تقریبا حجم 136 بایت در حافظه اشغال شده اما این مقدار برای لیست b برابر 184 میباشد.
〰️〰️〰️〰️〰️
© @DjangoEx
✔️ پاسخ سوال: در تصویر 1 لیستی به نام a به طول 5 و محتوای object ایجاد کردهایم. اگر به نمایش این لیست دقت کنید متوجه خواهید شد که تمامی اشیاء موجود در لیست a دارای یک آدرس یکسان در memory هستند. درواقع پایتون در این حالت برای جلوگیری از ساختن یک شئ ثابت به تعداد زیاد، اول یک نمونه از آنرا ساخته و سپس تمامی اعضای آرایه را به آن ارجاع (reference) میدهد. اگر قطعه کد
sys.getrefcount(a[0])
را اجرا کنیم خروجی 6 (رفرنس) را برمیگرداند. مقدار 5 مورد انتظار است اما آن یک واحد اضافه به دلیل رفرنس موقتی است به عنوان ورودی تابع
getrefcount
ساخته شده است.اما در حالت دوم داخل loop هربار یک شئ ایجاد میشود و آدرسها تغییر میکند. این موضوع زمانی که قصد مقداردهی اولیه یک لیست با حجم بالا را داریم، هزینه زمانی و حافظهای زیادی دارد.
دلیل تفاوت حجم لیست a و b در حافظه
با دقت به تصویر 2 متوجه خواهید شد که با تعریف لیست a به روش اول، تقریبا حجم 136 بایت در حافظه اشغال شده اما این مقدار برای لیست b برابر 184 میباشد.
〰️〰️〰️〰️〰️
© @DjangoEx
[2/2]
در روش اول نوع شئ و طول آرایه مشخص است اما در خصوص روش دوم موضوعی که باید به آن دقت کنیم نحوه کارکرد dynamic list و append در پایتون است. این ساختار به ما کمک میکند که بدون تعریف طول ثابت برای آرایه، مقادیری به آن اضافه و حذف کنیم و همانطور که از تصویر 2 نتیجه میشود، پایتون به طور خودکار حجم فضای اشغال شده برای آرایه را افزایش میدهد. میزان افزایش حجم همیشه بیشتر از حجم مورد نیاز برای رفرنسهای افزودهشده است و در نتیجه حجم نهایی لیست b بیشتر از حالت واقعی یعنی 136 بایت است.
برای مطالعه بیشتر درباره رفرنسها در پایتون میتوانید منابع زیر را مطالعه کنید.
https://www.pythontutorial.net/advanced-python/python-references/
https://runestone.academy/runestone/books/published/thinkcspy/Lists/ObjectsandReferences.html
https://www.educba.com/python-references/
#python #references #list
〰️〰️〰️〰️〰️
© @DjangoEx
در روش اول نوع شئ و طول آرایه مشخص است اما در خصوص روش دوم موضوعی که باید به آن دقت کنیم نحوه کارکرد dynamic list و append در پایتون است. این ساختار به ما کمک میکند که بدون تعریف طول ثابت برای آرایه، مقادیری به آن اضافه و حذف کنیم و همانطور که از تصویر 2 نتیجه میشود، پایتون به طور خودکار حجم فضای اشغال شده برای آرایه را افزایش میدهد. میزان افزایش حجم همیشه بیشتر از حجم مورد نیاز برای رفرنسهای افزودهشده است و در نتیجه حجم نهایی لیست b بیشتر از حالت واقعی یعنی 136 بایت است.
برای مطالعه بیشتر درباره رفرنسها در پایتون میتوانید منابع زیر را مطالعه کنید.
https://www.pythontutorial.net/advanced-python/python-references/
https://runestone.academy/runestone/books/published/thinkcspy/Lists/ObjectsandReferences.html
https://www.educba.com/python-references/
#python #references #list
〰️〰️〰️〰️〰️
© @DjangoEx
✔️ دوستانی که زبان انگلیسیتون خوب نیست،
برید توی کانال یوتوب این ۳ تا خانم و زبان انگلیسی رو یاد بگیرید تا وقتی خطا میخورید بجای اینکه منتظر باشید یک نفر پیدا بشه و به سوالتون پاسخ بده، خودتون بتونید سرچ کنید و یک مقاله بخونید و مشکل رو حل کنید.
Fara Zaban: https://www.youtube.com/c/FaraZaban
Paria Akhavass: https://www.youtube.com/c/PariaAkhavass
EnglishTurbo: https://www.youtube.com/c/EnglishTurbo
انگلیش توربو دوره های زیادی توی سایتش و اینستاگرام فعالی داره، دو تای اول هم کانال یوتوب پرمحتوا و خوبی دارن
#زبان_انگلیسی
〰️〰️〰️〰️〰️
© @DjangoEx
برید توی کانال یوتوب این ۳ تا خانم و زبان انگلیسی رو یاد بگیرید تا وقتی خطا میخورید بجای اینکه منتظر باشید یک نفر پیدا بشه و به سوالتون پاسخ بده، خودتون بتونید سرچ کنید و یک مقاله بخونید و مشکل رو حل کنید.
Fara Zaban: https://www.youtube.com/c/FaraZaban
Paria Akhavass: https://www.youtube.com/c/PariaAkhavass
EnglishTurbo: https://www.youtube.com/c/EnglishTurbo
انگلیش توربو دوره های زیادی توی سایتش و اینستاگرام فعالی داره، دو تای اول هم کانال یوتوب پرمحتوا و خوبی دارن
#زبان_انگلیسی
〰️〰️〰️〰️〰️
© @DjangoEx
✔️ دیجیتال نومد یا چادرنشینی دیجیتال
دیجیتال نومد سبک جالبی از زندگی هست که مفهومش از سال ۱۹۹۷ و با کتاب Digital Nomad وارد صنعت شد. به کسی که زندگی او در سفر میگذرد و عملا جای ثابتی (خانه) برای زندگی ندارد و از طریق اینترنت و تکنولوژی کسب درآمد میکند، دیجیتال نومد میگویند.
برای آشنایی بیشتر میتونید این مستند رو ببینید
👉 Link: https://youtu.be/iXGtx-hroKE
#digitalnomad
〰️〰️〰️〰️〰️
© @DjangoEx
دیجیتال نومد سبک جالبی از زندگی هست که مفهومش از سال ۱۹۹۷ و با کتاب Digital Nomad وارد صنعت شد. به کسی که زندگی او در سفر میگذرد و عملا جای ثابتی (خانه) برای زندگی ندارد و از طریق اینترنت و تکنولوژی کسب درآمد میکند، دیجیتال نومد میگویند.
برای آشنایی بیشتر میتونید این مستند رو ببینید
👉 Link: https://youtu.be/iXGtx-hroKE
#digitalnomad
〰️〰️〰️〰️〰️
© @DjangoEx
YouTube
Working online and traveling the world - digital nomads | DW Documentary
Working online whilst traveling the world sounds like a dream job for many people. But what exactly is a digital nomad? Pete and Supi live as digital nomads.
They travel the world permanently, work on the road and are always online. Their lives epitomize…
They travel the world permanently, work on the road and are always online. Their lives epitomize…
google_chegone_kar_mikonad_chapter28
navaar.ir
✔️ با کارمندانی که میخواهند شرکت را ترک کنند، چه باید کرد؟
بخش زیبایی از کتاب How Google Works (گوگل چگونه کار میکند)، قسمت ۲۸
〰️〰️〰️〰️〰️
© @DjangoEx
بخش زیبایی از کتاب How Google Works (گوگل چگونه کار میکند)، قسمت ۲۸
〰️〰️〰️〰️〰️
© @DjangoEx
👍1
✔️استخدام برنامه نویس Backend:
ما در تراز به دنبال یک توسعهدهندهی سمت سرور هستیم که با هم بتونیم سرویسمون رو توسعه بدیم.
+ موارد لازم :
-تسلط به Python و Django
-آشنایی با Class Based Views در Django
-آشنایی با مفاهیم اصلی پایگاه داده
-آشنایی با مفاهیم شیگرایی
-همکاری در کل چرخهی حیات تولید سیستم
-طراحی و توسعه کدهای تمیز با قابلیت استفاده در آینده
-مشتاق به یادگیری و کسب دانش روز
-دارای روحیه کار تیمی
-توانایی مدیریت زمان
-آشنایی با Git
-مسلط به فریمورک Django REST Framework
-آشنایی با الگوهای طراحی
-آشنایی با استک (ELK (Elasticsearch, Logstash, Kibana
-مسلط به MongoDB-Postgres
-آشنایی با Celery
-آشنایی با مفاهیم DevOps
-آشنایی با مفاهیم توسعه چابک
-آشنایی با تحلیل و طراحی سیستمها
+محدوده: غرب تهران - طرشت
+نوع همکاری: تمام وقت و حضوری
👉🏻Link: https://jobinja.ir/companies/taraz-elms/jobs/RVDx/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-django-%D8%AF%D8%B1-%D9%87%D9%88%D8%B4%D9%85%D9%86%D8%AF-%D9%86%D9%88%D8%A2%D9%88%D8%B1%D8%A7%D9%86-%D9%81%D8%B1%D8%AF%D8%A7
〰〰〰〰〰〰
© @DjangoEx
ما در تراز به دنبال یک توسعهدهندهی سمت سرور هستیم که با هم بتونیم سرویسمون رو توسعه بدیم.
+ موارد لازم :
-تسلط به Python و Django
-آشنایی با Class Based Views در Django
-آشنایی با مفاهیم اصلی پایگاه داده
-آشنایی با مفاهیم شیگرایی
-همکاری در کل چرخهی حیات تولید سیستم
-طراحی و توسعه کدهای تمیز با قابلیت استفاده در آینده
-مشتاق به یادگیری و کسب دانش روز
-دارای روحیه کار تیمی
-توانایی مدیریت زمان
-آشنایی با Git
-مسلط به فریمورک Django REST Framework
-آشنایی با الگوهای طراحی
-آشنایی با استک (ELK (Elasticsearch, Logstash, Kibana
-مسلط به MongoDB-Postgres
-آشنایی با Celery
-آشنایی با مفاهیم DevOps
-آشنایی با مفاهیم توسعه چابک
-آشنایی با تحلیل و طراحی سیستمها
+محدوده: غرب تهران - طرشت
+نوع همکاری: تمام وقت و حضوری
👉🏻Link: https://jobinja.ir/companies/taraz-elms/jobs/RVDx/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-django-%D8%AF%D8%B1-%D9%87%D9%88%D8%B4%D9%85%D9%86%D8%AF-%D9%86%D9%88%D8%A2%D9%88%D8%B1%D8%A7%D9%86-%D9%81%D8%B1%D8%AF%D8%A7
〰〰〰〰〰〰
© @DjangoEx
جابینجا، شغلی رویایی خود را پیدا کنید
استخدام برنامهنویس Django در هوشمند نوآوران فردا | جابینجا
استخدام برای فرصت شغلی برنامهنویس Django در Hooshmand Noavaran Farda ,
آشنایی با Class Based Views در Django آشنایی با مفاهیم اصلی پایگاه داده آشنایی با مفاهیم شیگ...
آشنایی با Class Based Views در Django آشنایی با مفاهیم اصلی پایگاه داده آشنایی با مفاهیم شیگ...
یکی از مشکلات خیلی بزرگ پایتون در زمینه مالتی تریدینگ وجود چیزی به اسم GIL که اوضاع رو برامون سخت میکنه و تقریبا باعث شده توی multi threading دستمون در مقایسه با زبان های دیگه خیلی باز نباشه . در اتفاقی عجیب اقای sam gross یه white paper ( همون proposal ) منتشر کردن مبنی بر حذف GIL , که اگه براتون جالب میتونین توی لینک زیر بخونین :
https://docs.google.com/document/u/0/d/18CXhDb1ygxg-YXNBJNzfzZsDFosB5e6BfnXLlejd9l0/mobilebasic
و در لینک زیر میتونین نتیجه بنچمارک که گرفته شده رو ببینید :
https://gist.github.com/colesbury/8479ee0246558fa1ab0f49e4c01caeed
یه چیز خیلی عجیب اینکه ۳۹۶ درصد سرعت در ۴ تا thread افزایش پیدا کرده .
https://docs.google.com/document/u/0/d/18CXhDb1ygxg-YXNBJNzfzZsDFosB5e6BfnXLlejd9l0/mobilebasic
و در لینک زیر میتونین نتیجه بنچمارک که گرفته شده رو ببینید :
https://gist.github.com/colesbury/8479ee0246558fa1ab0f49e4c01caeed
یه چیز خیلی عجیب اینکه ۳۹۶ درصد سرعت در ۴ تا thread افزایش پیدا کرده .
یه اشتباهی داشت ، اون قسمت گفته بود async که خوب دوستان اشاره کردن مربوط به multi threading هست ، اصلاح شد.
ممنون از :
@ShahriarShariati
ممنون از :
@ShahriarShariati
✔️ مکانیزم intern در پایتون چیست؟
از آنجایی که مقایسه دو رشته از طریق آدرس مموری(is) بسیار سریع تر
از مقایسه کاراکتر با کارکتر آنها(==) است، پایتون برای بهینه سازی، بعضی از رشته ها را مانند اسامی متغیر ها، توابع و کلاس های موجود در کد و همچنین بعضی رشته های پرکاربرد و کوتاه را intern میکند؛ یعنی تمامی رشته های با یک مقدار برابر به یک خانه مشترک در حافظه اشاره می کنند و بدین ترتیب می توان از is برای مقایسه آنها استفاده کرد. همچنین با استفاده از sys.intern می توان به صورت دستی رشته های دلخواه را intern کرد که زمانی که با داده های حجیم و تکراری در کاربرد هایی مانند NLP سر و کار داریم می تواند باعث بهبود عملکرد شود.
〰️〰️〰️〰️〰️
© @DjangoEx
از آنجایی که مقایسه دو رشته از طریق آدرس مموری(is) بسیار سریع تر
از مقایسه کاراکتر با کارکتر آنها(==) است، پایتون برای بهینه سازی، بعضی از رشته ها را مانند اسامی متغیر ها، توابع و کلاس های موجود در کد و همچنین بعضی رشته های پرکاربرد و کوتاه را intern میکند؛ یعنی تمامی رشته های با یک مقدار برابر به یک خانه مشترک در حافظه اشاره می کنند و بدین ترتیب می توان از is برای مقایسه آنها استفاده کرد. همچنین با استفاده از sys.intern می توان به صورت دستی رشته های دلخواه را intern کرد که زمانی که با داده های حجیم و تکراری در کاربرد هایی مانند NLP سر و کار داریم می تواند باعث بهبود عملکرد شود.
〰️〰️〰️〰️〰️
© @DjangoEx
Django Expert
✔️ مکانیزم intern در پایتون چیست؟ از آنجایی که مقایسه دو رشته از طریق آدرس مموری(is) بسیار سریع تر از مقایسه کاراکتر با کارکتر آنها(==) است، پایتون برای بهینه سازی، بعضی از رشته ها را مانند اسامی متغیر ها، توابع و کلاس های موجود در کد و همچنین بعضی رشته…
✔️ پیرو این نکته خوب که سید عزیز اشاره کرد. دوستان سوال پرسیدن که چرا مقایسه دوم خروجی False داده. ببینید کامپایلر CPython برای بهینگی در مصرف حافظه، وقتی یک رشته جدید (یا برخی دیگر از آبجکتها) تعریف میشه. مقدار اون رو با مقادیر موجود در حافظه مقایسه میکنه و بجای اشغال کردن مجدد حافظه، رفرنسی از دادههای قبلی در memory رو برمیگردونه و اینطوری برنامه رو بهینهتر میکنه.
اما آیا این اتفاق به طور خودکار برای هرنوع رشتهای میوفته؟ خب جواب نه است. این اتفاق فقط برای شئهایی از نوع رشته میوفته که:
1. کمتر از 20 کارکتر باشن و از ادغام چند رشته تشکیل نشده باشن.
2. رشته باید فقط شامل حروف ASCII، اعداد و underscore باشد (در مثال دوم از فاصله استفاده شده و به همین دلیل نتیجه مقایسه False است).
3. به اصطلاح compile-time constant باشن. یعنی چی؟ یعنی فقط رشتههایی که به طور ثابت در طول رانتایم تعریف میشن (مثال اول). اما اگر این رشته توسط یک عملگر دیگه تولید بشه (مثل توابع، متدها و...) عملیات intern به طور خودکار براش اتفاق نمیافتده و اینکار باید دستی صورت بگیره.
برای مطالعه بیشتر به این مقاله مراجعه کنید.
〰️〰️〰️〰️〰️
© @DjangoEx
اما آیا این اتفاق به طور خودکار برای هرنوع رشتهای میوفته؟ خب جواب نه است. این اتفاق فقط برای شئهایی از نوع رشته میوفته که:
1. کمتر از 20 کارکتر باشن و از ادغام چند رشته تشکیل نشده باشن.
2. رشته باید فقط شامل حروف ASCII، اعداد و underscore باشد (در مثال دوم از فاصله استفاده شده و به همین دلیل نتیجه مقایسه False است).
3. به اصطلاح compile-time constant باشن. یعنی چی؟ یعنی فقط رشتههایی که به طور ثابت در طول رانتایم تعریف میشن (مثال اول). اما اگر این رشته توسط یک عملگر دیگه تولید بشه (مثل توابع، متدها و...) عملیات intern به طور خودکار براش اتفاق نمیافتده و اینکار باید دستی صورت بگیره.
برای مطالعه بیشتر به این مقاله مراجعه کنید.
〰️〰️〰️〰️〰️
© @DjangoEx