zoukankan      html  css  js  c++  java
  • python的三个函数(eval、exec、complie)和python版RMI

    一、python的三个函数:

    1、eval函数:

    之前已经讲过了这个函数,该函数也类似于php的eval,例如下边这个例子

    1 eval("os.system('id')")

    但是有个问题,在eval中没办法执行赋值操作。

    2、exec函数:

    可以执行赋值操作,其他方便也比较类似于eval函数

    1 exec("os.system('id')")

    给一个赋值操作的例子:

    1 exec("a.__code__=b.__code__")

    3、compile函数:

    其实这个函数有点类似医院挂号分诊的功能:

    举两个例子说明吧:

    1 exec_code = compile("""for i in range(4):print i""","","exec")
    2 exec(exec_code)
    3 eval_code = compile("os.system('id')","","eval")
    4 eval(eval_code)

    二、python的RMI

    1、注册对象:

    (1)服务端脚本

     1 #服务器端:
     2 import SimpleXMLRPCServer
     3 
     4 class MyObject:
     5     def sayHello(self):
     6         return "hello xmlprc"
     7 
     8 obj = MyObject()
     9 server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8088))
    10 server.register_instance(obj)
    11 
    12 print "Listening on port 8088"
    13 server.serve_forever()

    (2)客户端脚本

    1 import xmlrpclib
    2 
    3 server = xmlrpclib.ServerProxy("http://localhost:8088")
    4 
    5 words = server.sayHello()
    6 
    7 print "result:" + words

    (3)备注:我发现的问题——调用对象的没有return的函数会导致崩溃打印堆栈,不知道为啥。

    2、注册函数:

    (1)服务端脚本

    1 from SimpleXMLRPCServer import SimpleXMLRPCServer   
    2 def respon_string(str):
    3     return "get string :%s"%str
    4 
    5 if __name__ == '__main__':
    6     s = SimpleXMLRPCServer(('0.0.0.0', 8080))
    7     s.register_function(respon_string,"get_string")
    8     s.serve_forever()

    (2)客户端脚本:

    1 from xmlrpclib import ServerProxy
    2 if __name__ == '__main__':
    3     s = ServerProxy("http://192.168.137.9:8080")
    4     print s.get_string("hello") 

    (3)备注:我发现的问题——调用对象的没有return的函数会导致崩溃打印堆栈,不知道为啥。

  • 相关阅读:
    Java遍历JsonObject对象
    fastjson.JSONObject之对象与JSON转换方法
    Java HotSpot VM中的JIT编译
    JAVA 反射类 捕获异常 method.invoke方法如何捕获异常
    手动调用hibernate的参数校验器和springboot参数校验器 验证
    Netty-Socketio API
    Netty-socketio集成redis,服务端集群推送消息
    mysql 导出csv格式数据解决乱码
    自建dns服务器
    MySQL 8.0 克隆(clone)插件快速搭建主从复制
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/8511151.html
Copyright © 2011-2022 走看看