[英]How to start a Python script several functions in
我有一個Python腳本,我想在腳本中將其稱為幾個功能。 下面的示例代碼:
class Name():
def __init__(self):
self.name = 'John'
self.address = 'Place'
self.age = '100'
def printName(self):
print self.name
def printAddress(self):
print self.address
def printAge(self):
print self.age
if __name__ == '__main__':
Person = Name()
Person.printName()
Person.printAddress()
Person.printage()
我通過輸入./name.py
執行此代碼。 如何從腳本末尾的函數printAddress()
提取此代碼?
謝謝
如果您問如何啟動python腳本並使其在不同位置開始執行,那么您將必須啟動腳本並附帶一些有關您要執行的操作的信息。 最常見的方法是添加對命令行參數的支持。
import sys
if __name__ == '__main__':
for arg in sys.argv:
print arg
如果要單獨從命令行執行上述腳本,則不會執行任何操作,但是如果使用一些額外的參數(例如:
./launch.py my_argument another_argument and_so_on
您將看到腳本可以通過sys.argv列表訪問額外的啟動參數。 使用此功能,您可以檢查啟動時是否傳遞了所有的參數,然后在所需的位置開始執行腳本。
您的腳本的一個示例如下所示
import sys
class Name:
def __init__(self):
self.name = 'John'
self.address = 'Place'
self.age = '100'
def printName(self):
print self.name
def printAddress(self):
print self.address
def printAge(self):
print self.age
if __name__ == '__main__':
Person = Name()
launchOptions = sys.argv[1:]
if not launchOptions or 'name' in launchOptions:
Person.printName()
if not launchOptions or 'address' in launchOptions:
Person.printAddress()
if not launchOptions or 'age' in launchOptions:
Person.printAge()
sys.argv [1:]上的范圍是因為sys.argv中的第一個條目將是啟動腳本的路徑。
因此,您可以啟動此示例並獲得以下結果
./launch
John
Place
100
./launch age
100
./launch address
Place
./launch name
John
現在,這只是一個非常基本的示例。 如果您決定朝這個方向走,那么對python的getopt模塊進行閱讀可能對您很有用。 它是命令行選項的解析器。
希望我正確理解了這個問題。
我不建議您實際執行此操作,因為這是一種無窮的遞歸函數,但是可以做到這一點:)
class Name():
def __init__(self):
self.name = 'John'
self.address = 'Place'
self.age = '100'
def printName(self):
print self.name
def printAddress(self):
print self.address
main()
def printAge(self):
print self.age
def main():
Person = Name()
Person.printName()
Person.printAddress()
Person.printage()
if __name__ == '__main__':
main()
線
Person = Name()
指示該類的名稱實際上應為Person
。 完全刪除printXXX
方法,並添加__repr__
方法,例如
def __repr__(self):
return "%s\n%s\n%s" % (self.name, self.address, self.age)
最后,我建議將名稱,地址和年齡添加到init
接受的參數列表中:
def __init__(self, name, address, age):
...
實例化一個Person
對象之后,您可以只打印它:
person = Person()
print person
處理命令行選項的一種更靈活的方法是使用“ optparse”模塊。 查看參考: http : //docs.python.org/library/optparse.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.