• Python hasattr,getattr,setattr,delattr


     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 # 作者:Presley
     4 # 邮箱:1209989516@qq.com
     5 # 时间:2018-11-04
     6 # 反射使用
     7 import sys
     8 class WebServer(object):
     9     def __init__(self,host,port):
    10         self.host = host
    11         self.port = port
    12     def start(self):
    13         print("Server is starting...")
    14     def stop(self):
    15         print("Server is stopping...")
    16     def restart(self):
    17         self.stop()
    18         self.start()
    19 
    20 def test_run(ins,name):
    21     print("running...",name,ins.host)
    22 
    23 if __name__ == "__main__":
    24     server = WebServer("localhost",333)
    25     '''#方法1
    26     # #print(sys.argv[1])
    27     # cmd_dic = {
    28     #     "start":server.start,
    29     #     "stop":server.stop
    30     # }
    31     # if sys.argv[1] in cmd_dic:
    32     #     cmd_dic[sys.argv[1]]()'''
    33 
    34 #1、hasattr,getattr
    35     #方法二
    36     if hasattr(server,sys.argv[1]):
    37         func = getattr(server,sys.argv[1]) #获取server.start方法的内存地址
    38         func() #相当于server.start()
    39 
    40 #2、setattr
    41     '''
    42     setattr(server,"run",test_run) #给实例绑定一个test_run方法,方法名字叫run
    43     server.run(server,"wohaoshuai")#绑定的方法调用类中属性需要传入对象名称
    44     '''
    45 #3、delattr
    46     delattr(WebServer,"start")
    47     server.restart()#报错
  • 相关阅读:
    gson和fastjson
    Hive和HBase的区别
    mac 比较两个文件
    mysql 查找在另一张表不存在的数据
    mysql 根据一张表更新另一张表
    shell调试
    目标
    百度在线面试总结
    20170109| javascript记录
    php-fpm问题
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/9903533.html
Copyright © 2020-2023  润新知