一、python的三个函数:

1、eval函数:

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

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

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

2、exec函数:

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

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

给一个赋值操作的例子:

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

3、compile函数:

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

举两个例子说明吧:

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

二、python的RMI

1、注册对象:

(1)服务端脚本

 #服务器端:
import SimpleXMLRPCServer class MyObject:
def sayHello(self):
return "hello xmlprc" obj = MyObject()
server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8088))
server.register_instance(obj) print "Listening on port 8088"
server.serve_forever()

(2)客户端脚本

 import xmlrpclib

 server = xmlrpclib.ServerProxy("http://localhost:8088")

 words = server.sayHello()

 print "result:" + words

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

2、注册函数:

(1)服务端脚本

 from SimpleXMLRPCServer import SimpleXMLRPCServer
def respon_string(str):
return "get string :%s"%str if __name__ == '__main__':
s = SimpleXMLRPCServer(('0.0.0.0', 8080))
s.register_function(respon_string,"get_string")
s.serve_forever()

(2)客户端脚本:

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

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

python的三个函数(eval、exec、complie)和python版RMI的更多相关文章

  1. Python 执行字符串表达式函数(eval exec execfile)

    eval:计算字符串中的表达式 exec:执行字符串中的语句 execfile:用来执行一个文件 在python 2中exec是语句,在python3中exec变为函数,后面要跟括号.在python3 ...

  2. Python 基础三 文件 函数

    今天回顾一下之前学的文件操作相关知识点,对于文件的操作,主要有一下几部分构成: 一.文件的基础知识 1.文件操作的基本流程 文件操作其实可以分成三大部分: 1.打开文件,获取文件句柄并赋予一个变量 2 ...

  3. Python第三周 函数详解

    def 函数名(): """注释说明"""" 执行逻辑体 return 返回值 定义不带参数的函数 带参数的函数 默认参数 这个是 ...

  4. Python Web-第三周-Networks and Sockets(Using Python to Access Web Data)

    1.Networked Programs 1.Internet 我们现在学习Internet部分,即平时我们浏览器做的事情,之后再学习客服端这部分 2.TCP 传输控制协议 3.Socket HTTP ...

  5. 人生苦短我用Python 第三周 函数周

    函数的定义: 1,def 函数名(参数1,参数2......): "注释:函数的作用和参数,增加可读性", 2,函数体 3,返回值 最简单的函数: def func(): prin ...

  6. python第三课--函数

    函数的作用 编程大师Martin Fowler先生曾经说过:“代码有很多种坏味道,重复是最坏的一种!”,要写出高质量的代码首先要解决的就是重复代码的问题.例如3次求阶乘: m = int(input( ...

  7. 新手Python第三天(函数)

    Python 函数的创建 def func2(): print('haha') # 函数的返回值 # 函数的返回值,没有定义返回None, # 有一个返回值返回这个object(可以返回一个函数对象) ...

  8. python基础三:函数

    def name(参数1,参数2,参数3,...) 可以自定义一些自己需要的函数来简化自己的工作. 如:自定义一个计算函数 def  mycount(a,b,c): y=a+b-c return y ...

  9. python之简单的函数介绍(http://docs.python.org/3/library)

    Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用. 在上面的网站上我们可以进行查询,Python具体都有哪些函数. 我们也可以再交互命令行中来查找函数: >> ...

随机推荐

  1. IOS多线程之Block编程

    1 什么是block   iOS SDK 4.0開始,Apple引入了block这一特性.字面上说,block就是一个代码块.可是它的奇妙之处在于在内联(inline)运行的时候(这和C++非常像)还 ...

  2. lvm 新建一个vg 逻辑卷 配置启动

    fdisk /dev/sdb 格式 t  8e w vgcreate datavg /dev/sdb1lvcreate -L 999G -n lvdata datavgmkfs.xfs /dev/da ...

  3. C# 关于JArray和JObject封装JSON对象

    直入主题,不废话... 1.JObject:基本的json对象 /// <summary> /// Gets the j object. /// </summary> /// ...

  4. Android代码内存优化建议-Android官方篇

    转自:http://androidperformance.com/ http://developer.android.com/intl/zh-cn/training/displaying-bitmap ...

  5. 用javascript将数据导入Excel

    网上收集的代码 <input type="button" name="out_excel" onclick="AutomateExcel();& ...

  6. C++类的成员函数的形参列表后面的const

    看到(C++ Primer)类的成员函数这里,突然对成员函数形参列表后面的const感到迷惑. 因为书中开始说是修饰隐含形参this的,然后又说是声明该函数是只读的. 大为不解! 翻资料.找人讨论.. ...

  7. 第三百一十一节,Django框架,Form表单验证

    第三百一十一节,Django框架,Form表单验证 表单提交 html <!DOCTYPE html> <html lang="en"> <head& ...

  8. (转)c++多态实现的机制

    原文地址:http://blog.csdn.net/zyq0335/article/details/7657465 1 什么是多态?多态性可以简单的概括为“1个接口,多种方法”,在程序运行的过程中才决 ...

  9. Javascript 严格模式 strict mode(转)

    一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. ...

  10. 【问题】报错[CRITICAL] Rendering SLS 'base:minions.install' failed: Jinja variable 'list' object has no element 0

    1.报错[CRITICAL] Rendering SLS 'base:minions.install' failed: Jinja variable 'list' object has no elem ...