Python学习

python中的对象

在python中,一切都是对象。每个对象由:标识(identity),类型(type),value(值)组成

  1. 标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数id(obj)可返回对象obj的标识。
  2. 类型用于表示对象存储的数据类型。类型用于限制对象的取值范围以及可执行的操作。可以使用type(obj)获取对象的所属类型。
  3. 值表示对象所存储的数据的信息。使用print(obj)可以直接打印出值。
    对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作

python是动态类型语言

变量不需要显示声明类型。根据变量引用的对象,python解释器可以自动确定数据类型

python是强类型语言

每个对象都有数据类型,只支持该类型支持的操作。
del用来主动删除不用的变量。当变量不再被引用时,会被垃圾回收。
x=y=123 链式赋值
a,b=10,20
python不支持常量,没有语法规则限制改变一个常量的值
python中可以通过time.time()获得当前时刻,返回的值以秒为单位,带微妙精度的浮点数。

封装JsonRpc请求
from typing import Callable
from functools import wraps
from hulk.http import smart_payload
from inspect import signature, _empty

def rpc_method(method_handle: Callable[[str], str]=None):
“”“用于rpc接口,将会把函数的参数直接透传给rpc方法”""
def wrapper(func):
@wraps(func)
def _wrapper(self, *args, **kwargs):
func(self, *args, **kwargs)
# 取参数的默认值
parameters = signature(func).parameters
kds = {parameter.name: parameter.default for _, parameter in parameters.items() if parameter.default
is not _empty and parameter.name != “self”}
kds.update(kwargs)
expected_parameters = func.code.co_varnames[1:] # ignore self
if len(args) < len(expected_parameters):
unreceived_parameters = expected_parameters[len(args):] # 未接收到的参数名称
args = list(args)
[args.append(kds[p]) for p in unreceived_parameters]
method = func.name
if method_handle is not None:
method = method_handle(func.name)
return getattr(self, “call”)(method, *args) # 传参都是以array的形式
return _wrapper
return wrapper

def rpc_pack_params(method_handle: Callable[[str], str]=None, param_handle: Callable[[str], str]=None,
remove_null=False):
“”“将包装接口的参数组装成dict,传入json rpc接口”""
def wrapper(func):
@wraps(func)
def _wrapper(self, *args, **kwargs):
func(self, *args, **kwargs)
obj = smart_payload(func)(self, *args, **kwargs)
method = func.name
if method_handle is not None:
method = method_handle(func.name)
if param_handle:
obj = {param_handle(k): v for k, v in obj.items()}
if remove_null:
obj = {k: v for k, v in obj.items() if v is not None}
return getattr(self, “call”)(method, obj)
return _wrapper
return wrapper

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值