一、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. m个苹果放在n个盘子里面有多少种放法?(动态规划)

    m个苹果放在n个盘子里面有多少种放法?(动态规划) 实现代码如下: #include <iostream> using namespace std; int s(int m ,int n) ...

  2. Hbase 学习(一) hbase配置文件同步

    最近在狂啃hadoop的书籍,这部<hbase:权威指南>就进入我的视野里面了,啃吧,因为是英文的书籍,有些个人理解不对的地方,欢迎各位拍砖. HDFS和Hbase配置同步 hbase的配 ...

  3. Struts2 的Action中取得请求参数值的几种方法

    先看GetRequestParameterAction类代码:  Java代码 public class GetRequestParameterAction extends ActionSupport ...

  4. java- ★学习资源★

    何静媛: http://blog.csdn.net/hejingyuan6/article/category/2367993 孤傲苍狼-java基础总结: http://www.cnblogs.com ...

  5. Linux 终端下快速移动光标

    ctr+a:移动光标到命令行开始处(紧接命令提示符号) ctr+e:移动光标到命令行行尾 ctr+k:删除光标到命令行行尾 ctr+u:删除光标到命令行开始处 ctr+h: 往后删除一字符 ctr+d ...

  6. 关于Cocos2d-x中自己定义的类的名字和Cocos2d-x引擎库中的类的名字重复的解决方法

    方法一: 修改自己定义的类的名字,VS2013中可以用Ctrl+H来替换某个特定的单词,Ctrl+F是用来查询某个单词所在的位置或者有没有存在. 方法二: 1.给自己定义的类的.h和.cpp文件的整体 ...

  7. window,centos双系统坏了

    在centos中格式化SD卡的时候,操作错误,误将windows系统C盘的给格式化了.C盘是ntf格式的,现在却变为了fat32的格式. 重启系统,发现还是可以进入到centos,但是window进入 ...

  8. e645. 处理键盘事件

    You can get the key that was pressed either as a key character (which is a Unicode character) or as ...

  9. e1087. try/catch语句

    The try/catch statement encloses some code and is used to handle errors and exceptions that might oc ...

  10. 根据多表条件更新表.............. 一条sql语句.............

    CREATE TABLE a( NAME INT, age int ); CREATE TABLE b( height INT, weight int ); ,); ,); SELECT * FROM ...