python_反射_根据用户输入字符串操作模块和模块的成员

调用的模块:lib文件夹下面的commons.py

def f1():
    print(‘函数1‘)

def f2():
    print(‘函数2‘)

def f3():
    print(‘函数3‘)

反射:根据用户输入字符导入模块并调用模块中的方法

import os

yhf = ‘lib‘

def wdc():
    inp = input(‘请输入(模块名/方法名):‘)
    # 将输入的字符串根据‘/’分割,并分别赋值给m和f
    try:
        m,f = inp.split(‘/‘)
        #   检测是要导入的模块是否存在
        if os.path.exists(yhf + ‘/‘ + m + ‘.py‘):

            # 根据字符串导入模块,若导入文件夹下面的模块,需要后面添加fromlist=True
            obj = __import__(yhf + ‘.‘ + m, fromlist=True)
            # 检测模块中是否存在成员(模块,成员名),返回 T/F
            if hasattr(obj, f):
                #   根据字符串的形式去对象(模块)中寻找成员。返回成员名
                func = getattr(obj, f)  # (模块,用户输入的字符串)
                # 执行方法
                func()
            else:
                # 当方法名输入错误时
                print(‘没有找到该方法!‘)
        else:
            print(‘不存在此模块!‘)
    except Exception:
        print(‘输入可是不正确!‘)

wdc()

执行结果:

四个方法:

  delattr()  根据字符串删除方法

  setattr()  根据字符串创建方法

  hasattr()  根据字符串检测方法是否存在

  getattr()  根据字符串寻找方法

原文地址:https://www.cnblogs.com/wangdianchao/p/11710035.html

时间: 2024-11-06 09:31:12

python_反射_根据用户输入字符串操作模块和模块的成员的相关文章

C#根据用户输入字符串,输出大写字母有几个,小写字母有几个

static void Main(string[] args) { // 根据用户输入字符串,输出大写字母有几个,小写字母有几个. Console.WriteLine("请输入一行英文代码"); string s = Console.ReadLine(); //用一个字符串接受输入值. int i = 0; int j = 0;// i是大写个数, j是小写个数. foreach (char s1 in s) { if (s1 >= 'A' && s1 <=

acedGetString获取用户输入字符串

acedGetString()[ads_getstring()]int acedGetString(int cronly, const TCHAR *prompt, TCHAR *psz) acedGetString()函数暂停程序运行以等待用户输入一个字符串,其定义如下: 该函数使result指向用户输入的字符串.参数cronly说明字符串能否包含空格.prompt参数指定acedGetString()函数暂停前显示的字符串.prompt是可选的,如果不需要使用,可放置一个NULL替代字符串的

Flex笔记_验证用户输入

内置验证器 Flex提供了很多内置的验证器,它们都是Validator类的子类. Flex以扩展Validator类的方式创建了内置验证器,以用于满足常用需求. Validator组件的重要属性和函数: enabled:Boolean类型,决定是否启用验证功能 required:Boolean类型,是否必填 requiredFieldError:String类型,设置显示给用户的消息 source:Object,设置想要验证的对象(组件) property:String,设置想要验证的对象属性

Python(51)_统计用户输入内容,索引为奇数,并且对于的索引的是数字的个数

#-*-coding:utf-8-*- ''' 统计用户输入内容,索引为奇数,并且对于的索引的是数字的个数 ''' count = 0 content = input(">>>") for i in range(len(content)): if i%2 == 1 and content[i].isdigit(): content +=1 print(count) 原文地址:https://www.cnblogs.com/sunnybowen/p/10230964.h

Python 字符串操作及string模块使用

python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 1.字符串属性方法操作: 1.>字符串格式输出对齐 1 2 3 4 5 6 7 8 9 10 11 >>> str = "Python stRING" >>> print str.center(20)       #生成20个字符长度,str排中间    Python stRING        &g

python字符串操作和string模块代码分析 牛人总结 转存

原文链接: http://blog.chinaunix.net/uid-25992400-id-3283846.html 任何语言都离不开字符,那就会涉及对字符的操作,尤其是脚本语言更是频繁,不管是生产环境还是面试考验都要面对字符串的操作. python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Flex笔记_处理用户输入

Form标签 在Flex中,Form标签的意义仅限于布局我们称之为控件的UI组件. id属性 MXML的id属性是ActionScript访问组件所包含值的重要途径. 示例:使用id属性访问控件的值 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library

java采用3种方式判断用户输入的字符串是否为回文

一.描述 回文的定义:"回文数" 就是正读倒读都一样的整数.如奇数个数字:98789, 这个数字正读是98789,倒读也是98789:偶数个数字3223也是回文数. 我们今天将回文数扩展为字母和数字组合回文,如adgu6776ugda也是回文,我们采用三种方式判断这种类型的字符串是否为回文: 1.调用StringBuffer类对象的reverse()方法,将字符串翻转后与之前的字符串比较,如果相等则为回文,反之亦然: 2.采用low和high两个变量分别对应字符串对称位置的index,

反射(hasattr , getattr, setattr) 输入的字符串用来运行程序

当用户输入字符串时,不能够用来运行程序 1.使用 hasattr 找出输入的字符串是否在程序内 2.使用 getattr 返回找出字符串对应的函数的内存地址或者变量 3. 使用setattr 添加新的函数,或者改变已有的程序的实例变量或类变量 import easygui def bulk(self): print('%s is talking'%self.name) class Dog(object): def __init__(self,name): self.name = name def