前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RPC(二)

RPC(二)

作者头像
小闫同学啊
发布2019-07-18 15:42:35
4300
发布2019-07-18 15:42:35
举报
文章被收录于专栏:小闫笔记小闫笔记小闫笔记

正文共:1222 字 5 图 预计阅读时间:4 分钟

每日分享

If you fear failure, you will never go anywhere.

如果你害怕失败,你将无法到达任何地方。

小闫语录

一件事情的难与易,除了事情本身涉及知识复杂与否外,最大程度取决于对待它的态度。如果心生胆怯,必定失败。

RPC

1.消息协议实现思路与divide调用参数确定

为了填上篇文章的坑,我们来实现一个二进制消息协议的小案例。这个案例要实现的是一个RPC的服务接口定义,这个RPC调用可以完成除法的操作。

首先我们看一下本地调用,这个大家都明白,所以直接上代码。

1.写一个除法的函数:

def divide(num1,num2):
    """
    除法
    :param num1: int
    :param num2: int
    :return: float
    """
    val = num1 / num2
    return val

2.在进行除法运算的时候,有可能会有异常情况,所以我们将异常定义一下。

考虑到num2可能为0的情况,我们此处自己定义异常。

class InvalidOpreation(Exception):
    def __init__(self, message=None):
        self.message = message or 'invalid operation'

整体代码实现:

class InvalidOpreation(Exception):
    def __init__(self, message=None):
        # 异常信息如果有指定则按指定输出,没有的话则输出`invalid operation`
        self.message = message or 'invalid operation'


def divide(num1, num2=1):
    """
    除法
    :param num1: int
    :param num2: int
    :return: float
    """
    # 增加判断操作,抛出自定义异常
    if num2 == 0:
        raise InvalidOpreation()
    val = num1 / num2
    return val

try:
    a = divide(200,0)
except InvalidOpreation as e:
    print(e.message)
else:
    print(a)

divide消息协议:divide方法中,第一个参数为int类型num1,第二个参数为int类型num2,以一种伪代码的形式描述一下:

float <= divide(1: int num1, 2: int num2=1) => InvalidOpreation
# 执行成功为左边float类型,执行失败为右边InvalidOpreation

注意:此代码只作为说明。

优质文章推荐:

redis操作命令总结

MySQL相关操作

SQL查询语句

前端中那些让你头疼的英文单词

Flask框架重点知识总结回顾

团队开发注意事项

浅谈密码加密

Django框架中的英文单词

Django中数据库的相关操作

DRF框架中的英文单词

DRF框架

Django相关知识点回顾

python技术面试题-腾讯

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈技术精选 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 每日分享
  • RPC
    • 1.消息协议实现思路与divide调用参数确定
    相关产品与服务
    云数据库 MySQL
    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档