简谈python反射

写出一个简单类:import sysclass webserver(object):    def __init__(self,host,post):        self.host = host        self.post = post

    def start(self):        print("server is starting...")

    def stop(self):        print("server is stopping...")

    def reload(self):        print("server is reloading...")

if __name__ == ‘__main__‘:    server = webserver(‘localhost‘,3033)    print(sys.argv[1])#当你要调用类方法时:#最low的方法为用:   if sys.argv[1] == ‘start‘:        server.start()代码重用太多,可以修改为将方法写成字典:    cmd_dic = {    ‘start‘:server.start,    ‘stop‘:server.stop,    ‘reload‘:server.reload}    if sys.argv[1] in cmd_dic:        cmd_dic[‘start‘]()代码依然有重用,可以用反射的方法来解决:    if hasattr(server,sys.argv[1]):        func = getattr(server,sys.argv[1]) #获取server.start内存地址        func()                             #server.start()反射是很好的写法,常用!
时间: 2024-10-24 09:00:19

简谈python反射的相关文章

简谈-Python的输入、输出、运算符、数据类型转换

输出: 格式化输出: 看到了 % 这样的操作符,这就是Python中格式化输出. 换行输出: 在输出的时候,如果有 \n 那么,此时 \n 后的内容会在另外一行显示 输入: 在python2.7当中,使用:raw_input(),在python3中不能使用.Python3只有input() 在python2中的input()把用户输入的东西当成式子(字符)了.所以在python2中一般用raw_input() python3中的input与python2中的raw_input()功能一样 运算符

简谈-Python爬虫破解JS加密的Cookie

通过Fiddler抓包比较,基本可以确定是JavaScript生成加密Cookie导致原来的请求返回521. 发现问题: 打开Fiddler软件,用浏览器打开目标站点(http://www.kuaidaili.com/proxylist/2/) .可以发现浏览器对这个页面加载了两次,第一次返回521,第二次才正常返回数据.很多没有写过网站或是爬虫经验不足的童鞋,可能就会觉得奇怪为什么会这样?为什么浏览器可能正常返回数据而代码却不行? 仔细观察两次返回的结果可以发现: 1.第二次请求比第一次请求的

简谈-Python的注释、变量类型、标识符及关键字

在Python程序中,要想支持中文输出,则要在代码前面添加 标识符:开发人员在程序中自定义的一些符号和名称 标示符是自己定义的,如变量名 .函数名等 标识符的规则:  标示符由字目.下划线和数字组成,且数字不能开头 python中的标识符是区分大小写的 常用的命名规则:   驼峰命名法: 小驼峰式命名法(lower camel case): 第一个单词以小写字母开 始:第二个单词的首字目大写,例如:myName.aDog 驼峰式命名法(upper camel case): 每一个单字的首字目都采

简谈Java 反射机制,动态代理

谈谈 Java 反射机制,动态代理是基于什么原理?小编整理了一些java进阶学习资料和面试题,需要资料的请加JAVA高阶学习Q群:701136382 这是小编创建的java高阶学习交流群,加群一起交流学习深造.群里也有小编整理的2019年最新最全的java高阶学习资料! 反射机制 Java 语言提供的一种基础功能,赋予程序在运行时自省(introspect,官方用语)的能力.可以在运行时通过提供完整的"包名+类名.class"得到某个对象的类型. 功能 在运行时能判断任意一个对象所属的

客户端GUI测试技术和自动化测试架构设计简谈

客户端自动化特点 客户端的自动化,通常做过的人都不是很愿意深入讨论.因为除了功能和逻辑之外,不得不面对各种界面变化,各种和环境交互,各种兼容问题以及想不到灰色地带,就算这样,也找不到太多有效的bug.然而即便如此,客户端的自动化必须去做,尤其是GUI的.它的自动化特点是: 复杂 成本高 不容易发现问题 技术要求高 架构很难通用 下面,从一些基本的东西开始一点点的讨论客户端GUI测试的一些问题和处理办法,以及自动化架构设计的一些思路.事实上就像上面说的,GUI的测试并不是为了发现bug,而是回归的

简谈【自动化协议逆向工程技术的当前趋势】

声明: 1)本文由我bitpeach原创撰写,禁止一切形式的转载.如有转载,侵权必究. 2)本简谈主要分为三个方面,第一是自动化协议逆向技术的基本理论,第二是当前发展趋势,第三是入门协议逆向技术的必备过程. 3)既是简谈,则文章篇幅不长,同时本文观点不一定正确,希望抛砖引玉,能得高人指点,幸为殊荣. 4)最近一个月比较忙,昨天正好写完稿子,今天就简写一些内容,避免重复,故为简谈. (一)协议逆向工程理论基础 1.1 什么是协议逆向技术 协议逆向工程是指在不依赖于协议描述的情况下,通过对协议实体的

Linux进程管理简谈

Linux系统进程管理简谈 进程是什么? 简单来说进程是一个正在执行的程序的一个副本,存在生命周期,有段指令和代码在不断运行. linux内核存储信息的固定格式:task struct 进程的相关信息存储在链表中 多个任务的task struct组件的链表:task list 进程的创建:父进程创建子进程(内核创建init进程,剩余一切进程有init及其子进程进程创建) 父进程创建子进程时向内核调用fork()来创建子进程并且通过调用clone()复制父进程的信息给子进程 Linux进程的优先级

Python 反射机制详解

本文和大家分享的主要是python反射机制相关内容,一起来看看吧,希望对大家学习python有所帮助. 对编程语言比较熟悉的朋友,应该知道"反射"这个机制.Python作为一门动态语言,当然不会缺少这一重要功能.然而,在网络上却很少见到有详细或者深刻的剖析论文.下面结合一个web路由的实例来阐述python的反射机制的使用场景和核心本质. 一.前言 1 def f1():2   print("f1是这个函数的名字!")3   4 s = "f1"

[简谈]绕过HR破门而入的求职智慧

以往我们在网上看到的很多求职文章或指导性纲领,譬如啥自信.做功课.良好形象.华丽的简历.工作经验.口才啥的,其实到了21世纪尤其是互联网高速发展的今天,前面这些技巧就显得无比空洞: 1.因为自信谁都可以做到哪怕装都能装出来 2.简历,谁都可以用各种模板来打造,至于说HR们是否看到华丽的简历就立刻对你打100分这也是有扯淡嫌疑的 3.良好形象.一般来说主要是衣着得体.气质不俗,长得好看不好看已经不怎么重要了,长得好看只能说明你大学时期课外生活也许很丰富,长得不好看也不代表你一定是个很努力的人 4.