欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么使用.proto文件

本篇內(nèi)容介紹了“怎么使用.proto 文件”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為那曲企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計,那曲網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

回想我年輕的時候,在做一個項目時,需要計算斐波那契數(shù)列第 n  項的值。但是我只會使用遞歸來實現(xiàn)。眾所周知,遞歸算法計算斐波那契數(shù)列的效率極差,速度極慢。

于是我求助于當(dāng)時我的師父,問他有沒有辦法幫我解決這個問題。

我?guī)煾刚f:“有啊,我寫過,但是代碼是用C++ 寫的,你估計看不懂。不過沒關(guān)系,你用 Python 直接調(diào)用就可以了。”

我很驚訝:“用 Python 直接調(diào)用C++代碼嗎?看起來似乎很麻煩啊。”

師父說:“一點也不麻煩。我給你一個.proto 文件和一個地址,你拿去自動生成代碼就能調(diào)用了。”

于是,我拿到了一個mentors_secret.proto文件,里面的內(nèi)容非常簡單:

syntax = "proto3";   message NumToCalc {     int32 num = 1; }   message Result {     int32 result = 1;     string msg = 2;     bool success = 3; }   service MentorsSecret {     rpc CalcFib(NumToCalc) returns (Result) {} }

還有一個地址:122.51.39.219:8766。

原來是使用 gRPC 啊。這樣我就知道怎么做了。

安裝環(huán)境

首先,我們先安裝Python 版本的gRPC:

pip install grpcio grpcio-tools

生成代碼

接下來,基于這個mentors_secret.proto文件,自動生成代碼。cd進入mentors_secret.proto文件所在的文件,執(zhí)行下面的命令:

python3 -m grpc_tools.protoc -I . --python_out=. --grpc_python_out=. ./mentors_secret.proto

此時,可以看到當(dāng)前文件夾中生成了兩個文件:mentors_secret_pb2.py和mentors_secret_pb2_grpc.py。

如下圖所示:

怎么使用.proto 文件

這兩個文件的內(nèi)容,不需要看。

調(diào)用遠程服務(wù)

接下來,創(chuàng)建一個新文件,叫做client.py,用來調(diào)用遠程的函數(shù):

import grpc from mentors_secret_pb2 import NumToCalc from mentors_secret_pb2_grpc import MentorsSecretStub   channel = grpc.insecure_channel('122.51.39.219:8766') stub = MentorsSecretStub(channel)  result = stub.CalcFib(NumToCalc(num=36)) print('斐波那契數(shù)列第36像是:', result.result)

代碼加上空行總共只有10行。1-3行導(dǎo)入模塊,6,7行創(chuàng)建遠程鏈接。第9行調(diào)用遠程的函數(shù)。第10行打印結(jié)果。

我們來看看運行效果:

怎么使用.proto 文件

運行結(jié)果秒出。

總結(jié)

當(dāng)我們拿到一個.proto文件,需要去調(diào)用gRPC 服務(wù)時,我們一般有如下步驟:

(1) 自動生成mentors_secret_pb2.py和mentors_secret_pb2_grpc.py文件。

(2) 查看.proto文件里面,service后面的名字MentorsSecret,如下圖所示:

怎么使用.proto 文件

(3) 編寫固定的代碼:

import grpc from mentors_secret_pb2_grpc import MentorsSecretStub # service 名字后面加上 Stub   channel = grpc.insecure_channel('遠程服務(wù)地址和 端口') stub = MentorsSecretStub(channel)

(4) 調(diào)用遠程函數(shù)。通過.proto文件,可以知道遠程函數(shù)CalcFib接收一個參數(shù)NumToCalc,所以把它導(dǎo)入進來:from  mentors_secret_pb2 import NumToCalc,它里面的參數(shù)為num,所以調(diào)用遠程服務(wù)時賦值:

para = NumToCalc(num=36) calc_result = stub.CalcFib(para)

(5) 從.proto知道返回的結(jié)果是Result里面的result屬性。于是打印calc_result.result獲得結(jié)果。

“怎么使用.proto 文件”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

分享標(biāo)題:怎么使用.proto文件
路徑分享:http://www.chinadenli.net/article28/isppjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)動態(tài)網(wǎng)站虛擬主機網(wǎng)站策劃網(wǎng)站改版網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化