python通过反射执行ssc平台出售代码

场景:ssc平台出售《企娥21717 93408》python2.7没有@注解 用于实现适配器模式,不能再方法执行前后维护一些全局变量。所以用反射的思路来统一调用一个方法来执行其他的函数。

比如以下例子是为了维护一个长期使用的mysql连接,以此减少mysql的访问压力。在每次执行其他方法的时候调用

self.conn = conn_app_db.check_conn(self.conn),以此来维护连接,或者产生新连接(通过conn.ping方法判断是否连接断开)。

class upload_article(object):

def __init__(self):
    self.conn = conn_app_db.check_conn(None)

def query_one_artice(self,a):
    try:
        print self.conn
        sql = "select md5_url,title,author,content from article_url_log limit 1"
        cursor = self.conn.cursor()
        cursor.execute(sql)
        result = cursor.fetchall()
        if result is None:
            return None
        else:

            return result
        cursor.close()
    except Exception,e:
        print e

def excute_function(self,fn_name,param):
    #这个用于检查连接是否可用
    self.conn = conn_app_db.check_conn(self.conn)
    print "conn is healthy"
    print "start to excute function "+fn_name
    result = getattr(self, fn_name, None)(param)
    return result

总结:getattr可以通过名字返回对象的属性和函数,最后通过代入参数执行函数。

猜你喜欢

转载自blog.51cto.com/14136434/2331537