zoukankan      html  css  js  c++  java
  • python3 面向对象补充


    f = People('egon',18,'male')

    非函数
    hasattr # hasattr(f,'name')
    getattr # getattr(f,'name')
    setattr # setattr(f,'name','EGON')
    class Teacher:
        school = 'oldboy'
        def __init__(self,name,age):
            self.name = name
            self.age = age
    
        def teach(self):
            print(self.name)
    
    # print(hasattr(Teacher,'school'))
    # print(getattr(Teacher,'school'))
    # print(getattr(Teacher,'asdfadsf','没有这个'))
    # setattr(Teacher,'school','欧德博爱')
    # print(Teacher.school)
    # delattr(Teacher,'school')
    # print(Teacher.__dict__)
    
    
    t = Teacher('egon',18)
    
    # print(hasattr(t,'name'))
    # print(getattr(t,'name'))
    # setattr(t,'name','EGON')
    # print(getattr(t,'name'))
    #
    # print(t.__dict__)
    # delattr(t,'name')
    # print(t.__dict__)
    
    # print(getattr(t,'teach'))
    # print(getattr(t,'school'))
    # print(t.school)
    # t.school = 'hahhahahahha'
    # print(getattr(Teacher,'school'))
    # print(getattr(t,'school'))
    # print(t.__dict__)

    item系列
    __getitem__ # f['name']
    __setitem__ # f['name'] = 'EGON'
    __delitem__ # del f['name']
    __len__ # len(f)
    class Foo:
        def __init__(self,name,age,sex):
            self.name=name
            self.age=age
            self.sex=sex
        def __getitem__(self, item):
            # print(self,item,type(item))
            # return getattr(self,item)
            return self.__dict__[item]
        def __setitem__(self, key, value):
            # setattr(self,key,value)
            self.__dict__[key]=value
    
        def __delitem__(self, key):
            # delattr(self,key)
            self.__dict__.pop(key)
    
        def __len__(self):
            return 10
    f=Foo('egon',18,'male')
    # print(f.name) #f['name']
    # print(f.age) #f['age']
    # print(f.sex) #f['sex']
    
    # print(f['name'])
    
    # f['name']='egon_nb'
    # print(f.__dict__)
    # del f['name']
    # print(f.__dict__)
    
    print(len(f))

    f = People
    __str__ # print(f) # f.__str__()
    class Teacher:
        def __init__(self,name,age):
            self.name=name
            self.age=age
            self.courses=[]
    
        def teach(self):
            print('%s teach' %self.name)
    
        def __str__(self):
            return '<name:%s age:%s>' %(self.name,self.age)
    
    class Course:
        def __init__(self,name,price,period):
            self.name=name
            self.price=price
            self.period=period
        def __str__(self):
            return '《name:%s price:%s period:%s》' %(self.name,self.price,self.period)
    
    # egon=Teacher('egon',18)
    # print(egon) #egon.__str__()
    # print(egon) #egon.__str__()

    __del__ # del f # f.__del__()
    import time
    class Foo:
        def __init__(self,x):
            self.x=x
            print('connect mysql') #conn=abcdef('192.168.1.10',3306)
    
        def __del__(self):
            '''做一些与这个对象有关的清理操作'''
            # conn.close()
            # file.close()
            print('====>')
    f=Foo(10)
    del f #f.__del__()
    time.sleep(3)
    print('主程序')
  • 相关阅读:
    .net常用框架总结
    微信小程序 语音转换
    nginx+redis实现session共享 .NET分布式架构
    Redis 安装及注册服务
    WebApi跨域
    Uri各个属性取值测试
    一些常用的FFMPEG命令集合
    动态规划重学习笔记
    给自己的电脑时间进行精准校时
    [NOI题库][POJ2536][匈牙利算法][二分图最大匹配]Gopher II
  • 原文地址:https://www.cnblogs.com/lucaq/p/7133334.html
Copyright © 2011-2022 走看看