<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های پیام عمرانی</title>
        <link>https://virgool.io/feed/@shanditom</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 21:27:09</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/3197296/avatar/h5jnu6.png?height=120&amp;width=120</url>
            <title>پیام عمرانی</title>
            <link>https://virgool.io/@shanditom</link>
        </image>

                    <item>
                <title>طریقه اجرای دستورات ترمینال (command) داخل پایتون</title>
                <link>https://virgool.io/@shanditom/%D8%B7%D8%B1%DB%8C%D9%82%D9%87-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA-%D8%AA%D8%B1%D9%85%DB%8C%D9%86%D8%A7%D9%84-command-%D8%AF%D8%A7%D8%AE%D9%84-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-fm2itk5ydcuj</link>
                <description>اجرای دستورات در ترمینال از طریق پایتونآیا میشه دستوراتی مثل: ls , pip , dir, mkdire, git,   ...  که در ترمینال سیستم عامل اجرا می کنیم را از داخل برنامه پایتون هم اجرا کنیم؟جواب : بلهروش ۱:import os
os.system&#40;&#039;نام دستور را اینجا می نویسیم&#039;&#41;
os.system&#40;&#039;dir&#039;&#41;   ==&gt; for windows
os. system&#40;&#039;ls -l&#039;&#41; ==&gt; for linuxروش۲: import subprocess
subprocess.run([&#039;dir&#039;])
subprocess.run([&#039;ls&#039;,&#039;-l&#039;])</description>
                <category>پیام عمرانی</category>
                <author>پیام عمرانی</author>
                <pubDate>Mon, 08 Apr 2024 14:26:34 +0330</pubDate>
            </item>
                    <item>
                <title>کاربرد &#039;__if __name__=&#039;__main در python چیست؟</title>
                <link>https://virgool.io/@shanditom/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-if-namemain-%D8%AF%D8%B1-python-%DA%86%DB%8C%D8%B3%D8%AA-fivgtdmyhabi</link>
                <description>عبارت __name__ را بخوانید: داندر name داندرعبارت __main__  را بخوانید: داندر main داندربرای درک کاربرد این شرط در پایتون قدم به قدم با مثال توضیح می دهم:ابتدا یک فایل m1.py ایجاد میکنیم و یک تابع می نویسیم که دو عدد ورودی میگیرد و جمع آن دو را بعنوان خروجی چاپ می کندdef sum(a,b):    print(__name__)  این خط برای درک بهتر       print(a+b)    sum(2,3)فایل پایتون m1 را اجرا می کنیم python m1.py&gt;&gt; __main__&gt;&gt;5همانطور که مشاهده میکنیم خروجی __name__ در این حالت که به طور مستقیم اجرا می کنیم __main__ خواهد بود. در مورد نحوه اجرا به صورت غیر مستقیم جلوتر توضیح میدم و تفاوتش را می بینیم.حالا دستورات را به صورت زیر تکمیل می کنیم و اجرا میکنیم:def add(a,b):    print(__name__)    print(a+b)if __name__ == &quot;__main__&quot;:    print(add(2,3))در این حالت چون فایل m1  را مستقیم اجرا می کنیم بنابراین شرط برقرار خواهد شد چون __name__ برابر __main__ است و خروجی ۵ چاپ می شودحالا یک فایل دیگر به نام project.py درست می کنیم و کنار فایل m1 ذخیره میکینم تا فایل m1 را به صورت ماژول یعنی به صورت غیر مستقیم صدا کنیم تا تفاوت را ببینیم به اینصورت داخل فایل  project می نویسیمimport m1فایل project  را اجرا میکنیمpython project.pyخروجی می شود فقط&gt;&gt; m1 یعنی اینبار مقدار __name__ برابر m1 میشود چون دیگر به صورت مستقیم m1.py را اجرا نکردیم بنابراین شرط زیر داخل m1 برقرار نیست و کدهای داخلش اجرا نمی شوند    if __name__ == &quot;__main__&quot;:        print(add(2,3))پس در حالت دوم شرط بالا برقرار نمیشود و خروجی ۵ چاپ نمی شود.حالا کاربردش: عملا این شرط هنگام ماژول نوشتن مثل یک حصاری  دور کدهامون می باشد که فقط وقتی فایل یا ماژول را به صورت مستقیم اجرا می کنیم تمام کدها اجرا می شوند چه داخل شرط و چه خارج شرط ولی اگر به صورت غیرمستقیم آن را بعنوان ماژول استفاده کنیم دیگر کدهای داخل بلاک شرط اجرا نمی شوند و دسترسی نداریم و فقط به متدها و دستورات خارج از آن شرط دسترسی خواهیم داشت چون دیگه __name__ مساوی __main__ نیست و برابر با نام فایل ماژول می شود. و درستش هم همینه وقتی ما می خواهیم از یک ماژولی که خودمان یا برنامه نویس دیگر نوشته استفاده کنیم صرفا باید به توابع  و کلاسهاش دسترسی داشته باشیم تا بتوانیم دوباره استفاده کنیم نه دستوراتی که مثلا برای تست آن توابع نوشته شده و عملا موقع import در خروجی چیز اضافه ای چاپ نشود.حالا دستور زیر را به فایل project.py اضافه می کنیمimport m1m1.add(6,4)  خروجی می شود&gt;&gt;m1&gt;&gt;10و در آخر برای اینکه فقط حاصل جمع چاپ شود یعنی m1 جاپ نشود دستور زیر را در فایل m1 حذف یا کامنت می کنیم چون این خط جهت درک بهتر نوشته شده بود#    print(__name__)</description>
                <category>پیام عمرانی</category>
                <author>پیام عمرانی</author>
                <pubDate>Mon, 08 Apr 2024 01:23:01 +0330</pubDate>
            </item>
            </channel>
</rss>