در این ویدیو از پلیلیست نکته ها و ترفندهای پایتون به بررسی مدیریت پکیجهای پایتون با استفاده از Poetry پرداختیم.
Poetry یک ابزار مدیریت وابستگیها و پروژههای پایتون است که به شما کمک میکند تا به راحتی و به صورت مدرن با محیط توسعه وابستههای پروژههای خود را مدیریت کنید. این ابزار امکاناتی مانند مدیریت و نصب وابستگیها، ساخت محیطهای مجازی، مدیریت ورژنها و ... را فراهم میکند.
در این ویدیو ابتدا برخی از مشکلات pip را بررسی و سپس Poetry را نصب و با آن یک پروژه ساختیم و در نهایت پروژه خودر PyPi منتشر کردیم
Link : https://youtu.be/UX5O7Z0aQb8
playlist: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwZcy2wRRBNqXZP8wf--TmF
@microfrontend_ir
#poetry #python
@Syntax_fa
Poetry یک ابزار مدیریت وابستگیها و پروژههای پایتون است که به شما کمک میکند تا به راحتی و به صورت مدرن با محیط توسعه وابستههای پروژههای خود را مدیریت کنید. این ابزار امکاناتی مانند مدیریت و نصب وابستگیها، ساخت محیطهای مجازی، مدیریت ورژنها و ... را فراهم میکند.
در این ویدیو ابتدا برخی از مشکلات pip را بررسی و سپس Poetry را نصب و با آن یک پروژه ساختیم و در نهایت پروژه خودر PyPi منتشر کردیم
Link : https://youtu.be/UX5O7Z0aQb8
playlist: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwZcy2wRRBNqXZP8wf--TmF
@microfrontend_ir
#poetry #python
@Syntax_fa
👍2❤1🔥1
Syntax | سینتکس
استفاده از الگوی طراحی Singleton در پایتون: class SingletonMeta(type): """ The Singleton class can be implemented in different ways in Python. Some possible methods include: base class, decorator, metaclass. We will use the metaclass because…
یه نکته در خصوص الگوی singleton در پایتون بگم:
استفاده از singleton تو پایتون یکی از bad practice ها به حساب میاد.
بجاش پیشنهاد میشه از قابلیت function cache استفاده کنیم.
مثلا:
https://nedbatchelder.com/blog/202204/singleton_is_a_bad_idea.html
#singleton #python
@Syntax_fa
استفاده از singleton تو پایتون یکی از bad practice ها به حساب میاد.
بجاش پیشنهاد میشه از قابلیت function cache استفاده کنیم.
مثلا:
@functools.cacheاگه هنوزم میخواید با کلاس single instance رو مدیریت کنید از این روش استفاده کنید:
def the_chess_board():
return ChessBoard()
class ChessBoard:لینک مقاله:
def __init__(self):
...
@classmethod
@functools.cache
def the_board(cls):
return cls()
https://nedbatchelder.com/blog/202204/singleton_is_a_bad_idea.html
#singleton #python
@Syntax_fa
Nedbatchelder
Singleton is a bad idea
Design patterns are a great way to think about interactions among classes. But the classic Singleton pattern is bad: you shouldn’t use it and there are better options.
👍4
پراکندگی موقعیت شغلی بک اند پایتون
هر چی تیره تر یعنی بیشتره
منبع:
https://workhunty.com/job-blog/where-is-the-best-place-to-be-a-programmer/Django/
#python
@Syntax_fa
هر چی تیره تر یعنی بیشتره
منبع:
https://workhunty.com/job-blog/where-is-the-best-place-to-be-a-programmer/Django/
#python
@Syntax_fa
👍12🤣4🔥1
How to use annotations in python.pdf
699.1 KB
نحوه استفاده از Annotations در پایتون
خوب خیلی ها اسم annotations به گوششون نخورده و یا اینکه مستقیما باهاش درگیر نشدن بلکه بیشتر جا ها دیدن ولی پاکش کردن! مثل اوایل کار من.
واقعیت اینه که اگر یه تعریف ساده ازش بخوام بکنم ،Annotation در واقع meta-data ای هستش که شما به بخش های کد اضافه میکنید تا خطایابی و درک کد بهتر بشه.
اما مدل های مختلفی از annotation ها رو ممکنه ببینید که یکسری روی متغیر ها، کلاس ، توابع ، ورودی و خروجی ها ، توضیحات کلی و ... قرار میگیرن.
همچنین در زمان ایجاد داکیومنتری هم خیلی کاربرد داره و بیش از پیش استفاده میشه.
معمولا از زمانی که شما با روابط شئ گرایی درگیر میشید شروع بهش شناخت annotation ها و موارد استفاده اون می کنین.
از انواع اون میشه به موارد زیر اشاره کرد:
- Type Annotations
- Custom Metadata Annoations
- Parameter Annotations
- Module Annotations
- Attribute Annotations
- Return Annotations
link
#python #annotation
@Syntax_fa | @Syntax_fa_group
خوب خیلی ها اسم annotations به گوششون نخورده و یا اینکه مستقیما باهاش درگیر نشدن بلکه بیشتر جا ها دیدن ولی پاکش کردن! مثل اوایل کار من.
واقعیت اینه که اگر یه تعریف ساده ازش بخوام بکنم ،Annotation در واقع meta-data ای هستش که شما به بخش های کد اضافه میکنید تا خطایابی و درک کد بهتر بشه.
اما مدل های مختلفی از annotation ها رو ممکنه ببینید که یکسری روی متغیر ها، کلاس ، توابع ، ورودی و خروجی ها ، توضیحات کلی و ... قرار میگیرن.
همچنین در زمان ایجاد داکیومنتری هم خیلی کاربرد داره و بیش از پیش استفاده میشه.
معمولا از زمانی که شما با روابط شئ گرایی درگیر میشید شروع بهش شناخت annotation ها و موارد استفاده اون می کنین.
از انواع اون میشه به موارد زیر اشاره کرد:
- Type Annotations
- Custom Metadata Annoations
- Parameter Annotations
- Module Annotations
- Attribute Annotations
- Return Annotations
link
#python #annotation
@Syntax_fa | @Syntax_fa_group
👍5
سوال پایتونی:
در مورد مفهوم Context Managers در Python توضیح دهید. چگونه میتوان یک Context Manager سفارشی ایجاد کرد؟ یک مثال عملی ارائه دهید.
Context Managers
در Python ابزارهایی برای مدیریت منابع (مانند فایلها، قفلها و اتصالات پایگاه داده) هستند. آنها اطمینان حاصل میکنند که منابع به درستی آزاد شوند، حتی در صورت رخ دادن خطا یا استثنا.
برای ایجاد یک Context Manager سفارشی، شما باید یک کلاس ایجاد کنید که دو متد
مثال عملی: فرض کنید میخواهیم یک Context Manager برای باز کردن و بستن فایلها بنویسیم:
در این مثال،
#python #context_manager
@Syntax_fa
در مورد مفهوم Context Managers در Python توضیح دهید. چگونه میتوان یک Context Manager سفارشی ایجاد کرد؟ یک مثال عملی ارائه دهید.
Context Managers
در Python ابزارهایی برای مدیریت منابع (مانند فایلها، قفلها و اتصالات پایگاه داده) هستند. آنها اطمینان حاصل میکنند که منابع به درستی آزاد شوند، حتی در صورت رخ دادن خطا یا استثنا.
برای ایجاد یک Context Manager سفارشی، شما باید یک کلاس ایجاد کنید که دو متد
__enter__ و __exit__ را پیادهسازی میکند. متد __enter__ باید منبع را آماده کند و آن را برگرداند. متد __exit__ باید منبع را آزاد کند و با استثناهای رخ داده به درستی برخورد کند.مثال عملی: فرض کنید میخواهیم یک Context Manager برای باز کردن و بستن فایلها بنویسیم:
class FileManager:
def __init__(self, filename, mode):
self.filename = filename
self.mode = mode
def __enter__(self):
self.file = open(self.filename, self.mode)
return self.file
def __exit__(self, exc_type, exc_value, traceback):
self.file.close()
with FileManager('data.txt', 'w') as f:
f.write('Hello, World!')
در این مثال،
FileManager یک کلاس Context Manager است. متد __enter__ فایل را باز میکند و شیء فایل را برمیگرداند. متد __exit__ فایل را میبندد، حتی اگر استثنایی در بلوک with رخ دهد.#python #context_manager
@Syntax_fa
👍5🔥1
⏰ زمان و حافظه خود را با list comprehension، map و generator نجات دهید!
سلام رفقا!
سطح = مقدماتی
امروز می خواهم به شما 3 ابزار قدرتمند در پایتون را معرفی کنم که می توانند به شما در صرفه جویی در زمان و حافظه هنگام کار با لیست ها و داده ها کمک کنند:
1. list comprehension:
این ابزار به شما امکان می دهد لیست های جدیدی را با کدی کوتاه و خوانا از لیست های موجود بسازید.
به جای استفاده از for loop های سنتی، می توانید از list comprehension برای فیلتر کردن، نگاشت و تغییر عناصر لیست به طور همزمان استفاده کنید.
مثال:
بااحتیاط از کد استفاده کنید.
2. map:
این تابع به شما امکان می دهد یک عملکرد را به هر عنصر لیست اعمال کنید و نتیجه را به عنوان یک لیست جدید برگردانید.
map برای تغییر یا نگاشت داده ها در یک لیست به طور یکسان مفید است.
مثال:
بااحتیاط از کد استفاده کنید.
3. generator:
ژنراتورها به شما امکان می دهند به طور متوالی مقادیر را از یک مجموعه داده تولید کنید بدون اینکه کل مجموعه داده را به یکباره در حافظه نگه دارید.
این امر آنها را برای کار با مجموعه داده های بزرگ که ممکن است در حافظه شما جا نشوند، ایده آل می کند.
مثال:
بااحتیاط از کد استفاده کنید.
با استفاده از این 3 ابزار قدرتمند، می توانید کد خود را کارآمدتر و مختصرتر کنید و در عین حال از حافظه و زمان خود به طور موثرتر استفاده کنید.
درضمن یه نکته رو خودم اضافه کنم که استفاده از list comprehension و map
نسبت به حلقههای for معمولی در پایتون ، ۲ الی ۳ برابر در زمان و حافظه صرفه جویی میکنه!
منبع:
Learn web development with python
[amirhossein]
#python
@Syntax_fa
سلام رفقا!
سطح = مقدماتی
امروز می خواهم به شما 3 ابزار قدرتمند در پایتون را معرفی کنم که می توانند به شما در صرفه جویی در زمان و حافظه هنگام کار با لیست ها و داده ها کمک کنند:
1. list comprehension:
این ابزار به شما امکان می دهد لیست های جدیدی را با کدی کوتاه و خوانا از لیست های موجود بسازید.
به جای استفاده از for loop های سنتی، می توانید از list comprehension برای فیلتر کردن، نگاشت و تغییر عناصر لیست به طور همزمان استفاده کنید.
مثال:
numbers = [1, 2, 3, 4, 5]
squared_numbers = [n * n for n in numbers]
print(squared_numbers) # Output: [1, 4, 9, 16, 25]
بااحتیاط از کد استفاده کنید.
2. map:
این تابع به شما امکان می دهد یک عملکرد را به هر عنصر لیست اعمال کنید و نتیجه را به عنوان یک لیست جدید برگردانید.
map برای تغییر یا نگاشت داده ها در یک لیست به طور یکسان مفید است.
مثال:
def double(x):
return x * 2
numbers = [1, 2, 3, 4, 5]
doubled_numbers = list(map(double, numbers))
print(doubled_numbers) # Output: [2, 4, 6, 8, 10]
بااحتیاط از کد استفاده کنید.
3. generator:
ژنراتورها به شما امکان می دهند به طور متوالی مقادیر را از یک مجموعه داده تولید کنید بدون اینکه کل مجموعه داده را به یکباره در حافظه نگه دارید.
این امر آنها را برای کار با مجموعه داده های بزرگ که ممکن است در حافظه شما جا نشوند، ایده آل می کند.
مثال:
def even_numbers(start, end):
for n in range(start, end + 1):
if n % 2 == 0:
yield n
for even_number in even_numbers(1, 20):
print(even_number) # Output: 2 4 6 8 10 12 14 16 18 20
بااحتیاط از کد استفاده کنید.
با استفاده از این 3 ابزار قدرتمند، می توانید کد خود را کارآمدتر و مختصرتر کنید و در عین حال از حافظه و زمان خود به طور موثرتر استفاده کنید.
درضمن یه نکته رو خودم اضافه کنم که استفاده از list comprehension و map
نسبت به حلقههای for معمولی در پایتون ، ۲ الی ۳ برابر در زمان و حافظه صرفه جویی میکنه!
منبع:
Learn web development with python
[amirhossein]
#python
@Syntax_fa
👍11🔥3😁1