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()可以迭代出 ...
随机推荐
- Oracle EBS 查询物料报错
- 使用CADisplayLink写秒表
使用CADisplayLink写秒表 效果: 源码: StopWatch.h 与 StopWatch.m // // StopWatch.h // ShowTime // // Created by ...
- PHP-7的FPM服务的启动
1.PHP 7的FPM服务位置:/ect/init.d/php7.0-fpm 2.启动:sudo service php7.0-fpm reload
- Maven构建时跳过部分测试
当遇到以下场景: 其他人写的单元测试影响统计结果 一些需要调用外部接口的测试暂不运行 需要在非本机环境上运行一些不回滚的单元测试 则有必要选择以下方法跳过部分测试. 在测试用例前加上注解 @Ignor ...
- September 07th 2017 Week 36th Thursday
With the most true of yourself, can you meet the most suitable one. 用最真实的自己,才能遇见最合适的那个人. You are alw ...
- 三星平板SM-T320刷机
三星 Galaxy Tab Pro 8.4 (SM-T320) / 国行 固件下载 刷机教程 下载手机驱动,刷机工具Odin,相应的固件包,手机和电脑用数据线连接安装好手机的驱动. 手机先完全的关机, ...
- 前段js初学总结
常用的js整理 confirm("此次修改操作会清空所有基础数据!!!您确定要修改吗?") <a onclick="delBasisData('${data['_i ...
- Python之美[从菜鸟到高手]--2+2=5
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/yueguanghaidao/article/details/35644165 今天在伯乐在线 ...
- Kubernetes dashboard 配置
安装前准备 下载dashboard的yaml文件 wget -O kube-dashboard.yaml https://git.io/kube-dashboard-no-rbac 这个版本是没有权限 ...
- UVa 1393 - Highways(数论)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...