美文网首页
2020-09-16 随机执行某个函数或某个类函数

2020-09-16 随机执行某个函数或某个类函数

作者: 昨天今天下雨天1 | 来源:发表于2020-09-16 16:51 被阅读0次
    #!usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import random
    import sys
    
    '''
    随机执行几个函数,函数可以执行不一样的功能
    
    hasattr() 函数用于判断对象是否包含对应的属性。 如果对象有该属性返回 True,否则返回 False。
    getattr() 函数用于返回一个对象属性值。  返回对象属性值。
    '''
    
    
    def a(x, y):
        print "x + y"
        return x + y
    
    
    def b(x, y):
        print "x - y"
        return x - y
    
    
    def c(x, y, z):
        print "x + y - z"
        return x + y - z
    
    
    if __name__ == '__main__':
        d = [('a', [3, 2]), ('b', [3, 2]), ('c', [3, 2, 1])]
        choice = random.choice(d)
        this_module = sys.modules[__name__]  # 当前文件
        # getattr(this_module, choice[0])    # 含义是找到当前文件下名称为a的对象
        print getattr(this_module, choice[0])(*choice[1])
    
    

    随机某个类的某个函数

    #!usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import random
    
    '''
    随机执行某个类的某个函数,这里弄不好了,暂时想到的办法是多弄几个列表,然后分开随机,再随机上次随机的结果。
    谁有好的办法给我留一下言,我学习一下。--昨天今天下雨天
    '''
    
    
    class A(object):
        def a(self, x, y):
            print "x + y"
            return x + y
    
    
    class B(A):
        def b(self, x, y):
            print "x - y"
            return x - y
    
    
    class C(A):
        def c(self, x, y, z):
            print "x + y - z"
            return x + y - z
    
    
    class D(B, C):
        def d(self, x, y, z):
            print "x - y - z"
            return x - y - z
    
    
    if "__main__" == __name__:
        d = [('a', [3, 2]), ('c', [3, 2, 1])]
        choice = random.choice(d)
        print getattr(C(), choice[0])(*choice[1])
    
    

    相关文章

      网友评论

          本文标题:2020-09-16 随机执行某个函数或某个类函数

          本文链接:https://www.haomeiwen.com/subject/kklhyktx.html