python基础学习1-反射
#!/usr/bin/env python
# -*- coding:utf-8 -*- getattr(),hasattr(),delattr(),setattr()
#反射:基于字符串的形式去对象(模块)中操作其成员 import commons
inp = input("请输入需要进入的页面方法")
if hasattr(commons,inp):#检查commons中是否有对应名称的操作成员
func=getattr(commons,inp) #反射 通过getattr在commons中查找名称为变量inp的操作成员
func()#执行找到的成员
else:
print("不存在输入的模块") #动态导入模块和寻找模块中的方法
ips=input("请输入需要进入的模块和页面方法")#以 commons/Login 形式输入模块和方法名
m,f=ips.split('/')
obj= __import__(m)#动态导入模块
if hasattr(obj,f):#验证当前导入模块中是否有指定方法名的方法
func1=getattr(obj,f)
func1() else:
print("不存在输入页面或模块") #动态导入模块和寻找模块中的方法 导入模块在文件夹中情况
ips=input("请输入需要进入的模块和页面方法")#以 commons/account 形式输入模块和方法名
m,f=ips.split('/')
obj= __import__("lib."+m,fromlist=True)#动态导入模块
if hasattr(obj,f):#验证当前导入模块中是否有指定方法名的方法
func1=getattr(obj,f)
func1() else:
print("不存在输入页面或模块")
commons.py
#!/usr/bin/env python
# -*- coding:utf-8 -*- def Login():
print("进入登陆界面") def Home():
print("进入主界面") def LogOut():
print("登陆出程序")
lib文件夹下 account.py
#!/usr/bin/env python
# -*- coding:utf-8 -*- def test():
print("测试test方法")
python基础学习1-反射的更多相关文章
- python基础学习笔记——反射
对编程语言比较熟悉的朋友,应该知道“反射”这个机制.Python作为一门动态语言,当然不会缺少这一重要功能.然而,在网络上却很少见到有详细或者深刻的剖析论文.下面结合一个web路由的实例来阐述pyth ...
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- Python 基础学习 总结篇
Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...
- (一)python基础学习
根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...
- python基础学习(起步)
目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...
- Python基础学习二
Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...
- Python基础学习一
Python基础学习一 1.变量与常量 变量名:大小写英文.数字.下划线的组合,数字不能开头 常量名:习惯上常量用大写字母命名,例如"PI" 2.多行输出 转义符:反斜杠(),如果 ...
- Python基础学习五
Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...
随机推荐
- MYSQL 的rownum
mysql> SELECT @rownum:=@rownum+1 AS rownum, FLIGHTS.FLTID FROM (SELECT @rownum:=0) r, FLIGHTS lim ...
- POST请求的forHTTPHeaderField
POST请求的forHTTPHeaderField 也许你的iOS项目中使用了AFNetworking2.0,或者是ASIHTTPRequest,对于http中POST请求的操作,你用了他们提供的现成 ...
- 使用SDWebImage淡入淡出的方式加载图片
使用SDWebImage淡入淡出的方式加载图片 效果: 请通过以下方式下载源码: 找到它修改文件的地方: 以下是使用源码: // // ViewController.m // SDWebImageFa ...
- 适配iOS6与iOS7
适配屏幕其实很简单,但为了保持兼容性以及写的代码的通用性,以及最小的改动代码,本人按照如下的一种方式来适配,可以一劳永逸. 1. 先定义几个宏,分辨表示应用可以使用区域的高度,屏幕可用区域的高度,屏幕 ...
- django中的权限控制(form增删改)
Django默认提供了权限控制,但只能对使用了其自带的登录认证的用户进行权限控制,说白了就是只能对存储在auth_user表中的用户进行权限控制,但不能对未登录过的用户进行权限控制.但如果通过集成LD ...
- [EffectiveC++]item43:学习处理模板化基类内的名称
- PHP SPL神器实现堆排序
之前学习过内部排序的八大算法,也一一写过代码实现.其中堆排序的原理是 将一颗二叉树初始化为堆 依次将最后一个结点与堆顶结点交换.然后调整堆顶元素位置,重置堆. 将二叉树初始化为堆可以看做从最后一个非叶 ...
- zookeeper for windows
1,安装java环境,安装完java之后,添加用户变量.并在命令行中测试 java -version . 2,下载zookeeper http://mirrors.shu.edu.cn/apache/ ...
- MVC四大筛选器—AuthorizeFilter
在Action的执行中包括两个重要的部分,一个是Action方法本身逻辑代码的执行,第二个就是Action方法的筛选器的执行. MVC4中筛选器都是以AOP(面向方面编程)的方式来设计的,通过对Act ...
- bootstrap datetimepicker 在 angular 项目中的运用
datetimepocker 是一个日期时间选择器,bootstrap datetimepicker 是 bootstrap 日期时间表单组件.访问 bootstrap-datetimepicker ...