温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

绑定,反射,内置函数

发布时间:2020-08-01 20:11:40 来源:网络 阅读:592 作者:期待美好 栏目:编程语言
#绑定方法:绑定给谁就应该谁来调用,谁来调用就会把谁当做第一个参数自动传入 import setting #配置文件为setting class mysql: def __init__(self,host,port): #绑定到对象 self.host=host self.port=port @classmethod #绑定到类 def from_conf(cls): return cls(setting.HOST,setting.PORT) @staticmethod #不与类也不与对象绑定 def creat_id(): n=eroos return n con=mysql.from_conf() print(con.port,con.host) com=mysql.creat_id() print(com.create_id) #反射 通过字符串来操作对象或者类的属性 1.hasattr 2.setattr 3.getattr 4.delattr class foo: def __init__(self,name): self.name=name def f1(self): print('f1') obj=foo('abc') #hasattr() 判断 print(hasattr(obj,'name')) print(hasattr(obj,'f1')) #getattr 调用 if hasattr(obj,'f1'): f=getattr(obj,'f1') #print(f) f() #setattr() 修改 obj.x=1 setattr(obj,'x',2) print(obj.__dict__) #delattr 删除 #del obj.name delattr(obj,'name') print(obj.__dict__) class fprser: def __init__(self,host,port): self.host=host self.port=port self.conn='xxx' def intera(self): while True: cmd=input('>>: ').strip() if not cmd:continue cmd_l=cmd.split() print(cmd_l) if hasattr(self,cmd_l[0]): func=getattr(self,cmd_l[0]) func(cmd_l) def get(self,cmd_l): print('geting......',cmd_l) def put(self,cmd_l): print('puting...',cmd_l) client=fprser('2.2.2.2',23) client.intera() #内置函数 isinstance() #判断一个对象是不是某个类型的 l=list([]) print(isinstance(l,list)) issubclass() #判断是不是某个的子类 class foo: pass class bar(foo): pass print(issubclass(bar,foo)) #__str__ #打印时触发,默认打印内存地址 class foo: def __init__(self,name,age): #初始化时触发 self.name=name self.age=age def __str__(self): ##打印时触发 return <__main__,.......> #可以修改打印自己需要的 conf=foo('abc',38) print(conf) #print(abc.__str__()) #__del__ 回收之后在打印del class foo: def __del__(self): print('del....') obj=foo() print('123') class foo: def __del__(self): print('del....') obj = foo() del obj print('123') 
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI