প্রচুর ঘুম হারানোর পরে পুনরাবৃত্ত ক্ষেত্রের কাজ করার জন্য একটি মৌলিক উদাহরণ পাওয়ার চেষ্টা করার পরে অবশেষে আমি তা পেয়েছি।
সমস্যাটি:
- বর্গক্ষেত্র এবং গুণক দুটি ফাংশন সহ একটি ক্যালকুলেটর.পি তৈরি করুন।
- জিআরপিসি ব্যবহার করে, এর জন্য একটি প্রোটো ফাইল তৈরি করুন।
- একটি সার্ভার, একটি ক্লায়েন্ট লিখুন।
- সঠিক ফলাফল পেতে সার্ভারটি চালান এবং ক্লায়েন্টটি চালান।
প্রোটো ফাইল:
syntax = "proto3";
message Number {
int32 value = 1;
}
message NumList {
string name = 1;
repeated Number nums = 2;
}
service Calculator {
rpc Multiplier(NumList) returns (Number) {}
rpc Square(Number) returns (Number) {}
}
বর্গক্ষেত্র অংশটি সহজ, তবে গুণকগুলির জন্য, আমি সংখ্যাগুলির একটি তালিকা পাস করতে চেয়েছিলাম (প্রোটো ফাইলে সংজ্ঞায়িত সংখ্যার মতো)।
সমস্যাটি ছিল বারবার ক্ষেত্রের সাথে। এবং এখানে সংক্ষেপে চূড়ান্ত সমাধান।
সমাধান:
import grpc
import calculator_pb2
import calculator_pb2_grpc
channel = grpc.insecure_channel('localhost:50051')
stub = calculator_pb2_grpc.CalculatorStub(channel)
num_list = calculator_pb2.NumList()
num_list.name = 'MyFirstList'
n1 = num_list.nums.add()
n2 = num_list.nums.add()
n3 = num_list.nums.add()
n1.value = 10
n2.value = 20
n3.value = 30
assert len(num_list.nums) == 3
response = stub.Multiplier(num_list)
print(response.value)
ক্যালকুলেটর মাল্টিপ্লায়ার ফাংশন (কারণ এটি দেখানো দরকার):
def multiplier(numlist, name):
mul = 1
for num in numlist:
mul = mul * num.value
print(f'Result of list {name}')
return mul
আশা করি এটি কাউকে সাহায্য করবে। আশা করি এটি যেমন বর্ণনামূলক হবে তেমনি হওয়া উচিত।
append()
, যেমন , ব্যবহার করুনperson.id.append(1)
। এটি কোনও প্রোটোবুফrepeated
ক্ষেত্রের জন্য প্রযোজ্য ।