python調用方法
A. python中功能內的功能,如何在外部調用類內,方法內的方法呢在外部又是怎樣調用到的
外部調用可以通過記事本,寫入函數改為.py後綴,放到需要調用的文件夾之下,再利用import進行調用,可以直接通過賦予的名字調用class下面的方法,調用方法用.就可以
B. python中3種調用可執行文件.exe的方法
方法一、os.system() 會保存可執行程序中的列印值和主函數的返回值,且會將執行過程中要列印的內容列印出來。
import os
main = "project1.exe"
r_v = os.system(main)
print (r_v )
方法二、commands.getstatusoutput() 會保存可執行程序中的列印值和主函數的返回值,但不會將執行過程中要列印的內容列印出來。
import subprocess
import os
main = "project1.exe"
if os.path.exists(main):
rc,out= subprocess.getstatusoutput(main)
print (rc)
print ('*'*10)
print (out)
方法三、popen() 會保存可執行程序中的列印值,但不會保存主函數的返回值,也但不會將執行過程中要列印的內容列印出來。
import os
main = "project1.exe"
f = os.popen(main)
data = f.readlines()
f.close()
print (data)
另外,上面提到的三種方式,實際上都是在python中執行命令,因此他們不只是用來執行可執行文件,也可以用來執行linux系統中別的指令。
關於python中3種調用可執行文件.exe的方法,環球青藤小編就和大家分享到這里了,學習是永無止境的,學習一項技能更是受益終身,所以,只要肯努力學,什麼時候開始都不晚。如果您還想繼續了解關於python編程的學習方法及素材等內容,可以點擊本站其他文章學習。
C. 為什麼Python調用方法,有的前面加類名,有的不加
答: Python使用面向對象的方法進行編程時,確實有兩種調用方法。第一,當被調用的方法是靜態方法,那麼這個時候無須實例化對象,直接按照類名.函數名格式即可,如math.sin(),在該函數的底層實現當中,使用了@staticmethod聲明靜態方法,我的理解是這樣的,當某個方法經常被使用時,把它聲明成靜態方法會方便一些;第二,當被調用方法是非靜態方法時,則必須先實例化一個對象,再進行方法調用。希望能夠幫助到你。
例子
D. python中可以直接用類調用方法嗎
這里先肯定的回答一下:可以
python里方法在類中是作為類的屬性的,在解釋之前,這邊先給個例子
>>>classPizza(object):
...radius=42
...def__init__(self,size=10):
...self.size=size
...defget_size(self):
...returnself.size
...@staticmethod
...defmix_ingredients(x,y):
...returnx+y
...defcook(self):
...returnself.mix_ingredients(self.cheese,self.vegetables)
...@classmethod
...defget_radius(cls):
...returncls.radius
>>>Pizza.get_size
<unboundmethodPizza.get_size>
>>>Pizza.get_size()
Traceback(mostrecentcalllast):
File"<stdin>",line1,in<mole>
TypeError:unboundmethodget_size()(gotnothinginstead)
>>>Pizza.get_size(Pizza(42))
42
>>>Pizza(42).get_size
<boundmethodPizza.get_sizeof<__main__.Pizzaobjectat0x7f3138827910>>
>>>Pizza(42).get_size()
42
>>>m=Pizza(42).get_size
>>>m()
42
>>>m=Pizza(42).get_size
>>>m.__self__
<__main__.Pizzaobjectat0x7f3138827910>
>>>m==m.__self__.get_size
True
>>>Pizza().cookisPizza().cook
False
>>>Pizza().mix_ingredientsisPizza.mix_ingredients
True
>>>Pizza().mix_ingredientsisPizza().mix_ingredients
True
>>>Pizza.get_radius
<boundmethodtype.get_radiusof<class'__main__.Pizza'>>
>>>Pizza().get_radius
<boundmethodtype.get_radiusof<class'__main__.Pizza'>>
>>>Pizza.get_radiusisPizza().get_radius
True
>>>Pizza.get_radius()
42
在上面的例子中可以看出python中類有三種方法,分別是類方法,靜態方法,實例方法。而能讓類只接調用的只有類方法,或通過一些小技巧,類也可以調用實例方法如上面例子中的調用
>>>Pizza.get_size(Pizza(42))
42
這邊順便說明下這三中方法的區別
1類方法的特點是類方法不屬於任何該類的對象,只屬於類本身
2類的靜態方法類似於全局函數,因為靜態方法既沒有實例方法的self參數也沒有類方法的cls參數,誰都可以調用
3.實例方法只屬於實例,是實例化的對象才能調用
E. Python調用自定義模塊方法有什麼
import語句
自定義模塊可以採用import語句來進行引入,其操作步驟是先導入模塊,再調用模塊中包含的函數,可將自定義模塊放入當前目錄,便於解釋器路徑搜索,以下是導入自定義hello.py模塊,並調用World函數的實例:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
#導入模塊
import hello
#現在可以調用模塊里包含的函數了
support.print_func("World")
輸出結果為:
Hello World!
以上實例也可以採用from…import的方法進行實現,是指從一個模塊中導入指定的部分到當前命名空間中,以上功能可寫成:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
from hello import World
如果要將模塊中的所有內容全部導入當前命名空間,可採用from…import*的方法,具體實例如下:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
from hello import *
還需注意,當要導入一個模塊時,Python解釋器會對模塊的位置進行搜索,具體搜索順序規律如下:
1.當前目錄;
2.如果不在當前目錄,Python則搜索在shell變數PYTHONPATH下的每個目錄;
3.如果都找不到,Python會察看默認路徑。
F. python中怎麼調用另一個程序
python中怎麼調用另一個程序?
1、自身函數調用:
自身函數的調用時相當方便的,在定義好了函數以後直接按定義的格式調用即可,出現的錯誤為參數數量不匹配,如:TypeError: func() missing 1 required positional argument: 's',意思為func()函數有一個形式參時但是沒有傳入相對應的實參值。
2、通過包或模塊調用:
通過包或模塊調用相對自身函數調用比較復雜,需要提前導入包或模塊,常用的方法為import 或者from import,導入成功的前提是對應的包或模塊在python路徑之下,可以通過sys.path(sys為系統內置模塊可以直接使用import sys導入)來查看python路徑。以導入第三方包文件requests為例。
3、通過類方法調用:
通過類方法的調用需要在調用之前,實例化一個類對象,通過這個類對象來調用類方法,
注意第三個方法為私有方法,不允許類外部訪問。