[英]Run Python script that affect parent shell (changes environment variables, runs other scripts, etc.)
[英]Will changes made to a Python script affect another run in progress on the same file?
假設我已經運行了一個Python腳本。 讓我們說它在運行時,我打開源代碼並將變量的值更改為不同的值。 現在,如果我開始運行最新的源代碼,在另一個終端中,前一次運行會發生什么變化?
因為我在運行時所做的這一最新改變會不會受到影響?
問題是我想為特定變量的不同值執行程序的並行運行。 有更好的方法嗎?
Python將您的源代碼編譯為字節碼並運行該字節碼。 一旦讀取了源文件,就不再需要運行該字節碼。 對源文件的更改不會影響已經運行的代碼。
但是,如果引發異常並且Python嘗試格式化回溯以進行顯示,它將返回到源代碼,將字節碼中的行標記映射回源行。 如果源文件在編譯后發生更改,則可能意味着顯示錯誤的行。 這可能會造成混亂。
您可以輕松地提供程序命令行參數以改變其行為方式。 查看sys.argv
列表 ,以及argparse
模塊,以獲得更復雜的命令行選項處理。 這樣你的代碼就會保持穩定和靈活。
Python通常將源代碼編譯為* .pyc文件。 更改腳本中的值通常不會影響內存中已有的值。
更好的方法是從argv中獲取一個參數
python your_script.py value
你可以用它來訪問它
import sys
sys.argv[1] #this is the 'value' from the command line
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.