python静态局部变量,使用装饰器实现

def static_vars(**kwargs):'''装饰器,用于添加静态局部变量,相当于设置了函数本身的属性,其实使用类也可完成此功能'''def decorate(func):for k in kwargs:setattr(func, k, kwargs[k])return funcreturn decorate@static_vars(Pitch=0, Roll=0, flag=0, speed=2.5, MaxPitch=50, MaxRoll=50)
def swing_body():'''使用装饰器编程,实现类似于C语言的静态局部变量的效果'''if swing_body.flag == 0:swing_body.Pitch += swing_body.speedif swing_body.Pitch >= swing_body.MaxPitch:swing_body.flag = 1if swing_body.flag == 1:swing_body.Roll += swing_body.speedif swing_body.Roll >= swing_body.MaxRoll:swing_body.flag = 2if swing_body.flag == 2:swing_body.Pitch -= swing_body.speedif swing_body.Pitch <= -swing_body.MaxPitch:swing_body.flag = 3if swing_body.flag == 3:swing_body.Roll -= swing_body.speedif swing_body.Roll <= -swing_body.MaxRoll:swing_body.flag = 0motor_all_set(position_solver(0.4,swing_body.Roll,swing_body.Pitch,0))  # 高度 Roll, Pitch, Yaw


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部