一、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. [LintCode]计算两个数的交集(一)

    问题分析: 既然返回值没有重复,我们不妨将结果放进set中,然后对两个set进行比较. 问题求解: public class Solution { /** * @param nums1 an inte ...

  2. DataTable的AcceptChanges()和RejectChanges()方法

    一.DataTable.AcceptChanges()方法 提交自上次调用AcceptChanges()方法以来对该表进行的所有更改.调用AcceptChanges()时,任何扔处于编辑模式的Data ...

  3. nodejs 模块以及加载机制,主要讨论找不到模块的问题

    最主要的一个思想,加载模块无非就是找到模块在哪,只要清楚了模块的位置以及模块加载的逻辑那么找不到模块的问题就迎刃而解了.本文只是综合了自己所学的知识点进行总结,难免出现理解错误的地方,请见谅. nod ...

  4. ggplot2——简介

    ggplot2是R语言最为强大的作图软件包,强于其自成一派的数据可视化理念.当熟悉了ggplot2的基本套路后,数据可视化工作将变得非常轻松而有条理. 本文主要对ggplot2的可视化理念及开发套路做 ...

  5. selenium测试(Java)--下载文件(十六)

    下载文件需要在Firefox 的profile属性中配置一些参数,如下面的代码: package com.test.download; import java.io.File; import org. ...

  6. 【MySQL】字符串截取之substring_index

    substring_index(str,delim,count)       str:要处理的字符串       delim:分隔符       count:计数 例子:str=www.baidu.c ...

  7. 深入解析AsyncTask

    REFRENCES:http://blog.csdn.net/hitlion2008/article/details/7983449 AsyncTask的介绍及基本使用方法 关于AsyncTask的介 ...

  8. Android多线程任务的优化1:AsyncTask的缺陷 (转至 http://www.linuxidc.com/Linux/2011-09/43150.htm)

    导语:在开发Android应用的过程中,我们需要时刻注意保障应用的稳定性和界面响应性,因为不稳定或者响应速度慢的应用将会给用户带来非常差的交互体验.在越来越讲究用户体验的大环境下,用户也许会因为应用的 ...

  9. datepicker防手动输入

    在<input>中加入readonly="readonly"

  10. 第五章 面向方面编程___OOP和AOP随想

    面向方面编程,又称面向切面编程(Aspect-Oriented-Programming),英文缩写 AOP,可以说是 OOP(Object-Oriented-Programming)面向对象编程的补充 ...