绑定,反射,内置函数
admin
2023-07-19 00:42:29
0次
#绑定方法:绑定给谁就应该谁来调用,谁来调用就会把谁当做第一个参数自动传入
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')

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...