首页 > 其他分享 >w7

w7

时间:2022-11-13 17:25:57浏览次数:31  
标签:__ name self w7 print class def

本周内容总结

派生方法的实战总结

# json 模块只能序列化指定的数据类型 而且要求数据类型的内部也要是指定的数据类型
这时候就可以看出派生的方法的重要性
代码实现:
	class MyJsonEncoder(json.JsonEncoder):
        def default(self,o):
            '''
            :param o: 接收无法被序列化的数据
        	:return: 返回可以被序列化的数据
            '''
            if isinstance(o,datetime.datetime):  # 判断是否是datetime类型 如果是久处理成可被序列的类型
                return o.strftime(%Y-%m-%d %X)
            elif isinstance(o,datetime.date):
                return o.strftime(%Y-%m-%d)
            return super().default(o)  # 最后调用原来的方法 这样就防止了一些额外操作没有做
        
        res = json.dumps(d,cls = MyJsonEncoder)
        print
'''
使用继承的方法来做到拦截操作 然后经过处理后再将数据返回
'''

面向对象三大特征之封装

封装:就是将数据和功能全部'隐藏'起来
隐藏:将数据和功能隐藏起来让用户无法直接获取使用 而是通过开放的窗口调用
伪装:将类里边的方法伪装成数据值
'''
使用类中的方法(函数)需要点函数命名加括号的形式但经过伪装的处理可以不需要括号也可以使用
'''
class MyCalss:
    school_name = '清华大学'
    _ = 'hhh'
    __age = 99
    # 类在定义阶段 变量名如果是两个下划线 那么就会被隐藏 在类外无法直接被调用
    # 这种隐藏并不是正在意义上的隐藏 仅仅是换了一个名字
obj = MyClass()
obj.__name = 'aaa'  # 无法被隐藏 只有在类定义阶段才行
'''
如果我们使用MyClass.__dict__的方式可以查看到隐藏了的
再使用print(MyClass._MyClass__age)
所以并不是真正的被隐藏了
因为无法做到真正的隐藏所以在类的定义阶段如果代码中有下划线开头的变量名或者是方法我们就不要直接去使用了 而是去找下面可能定义的接口
'''

伪装

# 将类里边的方法伪装成数据值
代码实现:
class Person(object):
    def __init__(self,name,hegiht,weight):
        self.name = name
        self.hegiht = height
        self.weight = weight
        
    @prperty
    def BMI(self):
        return self.weight/(self.hegiht ** 2)
    
p1 = Person('aaa', 180, 160)
没有伪装:p1.BMI()
利用@prperty
就可以直接点出来
print(self.BMI)

面向对象三大特征之多态

#多态:多态就是一种事物的多种表达形态
例如水有固态 气态 液态

class Anmimal:
    pass

class Cat(Anmimal):
    def miao():
        print('喵喵喵')
        
class Dog(Anmimal):
    def wang():
        print('汪汪汪')
        
# 但在作为动物 他们都会叫
'''
面向对象多条的意思是 一种事物可以有多种形态但是针对相同的功能应该有定义相同方法
这样无论我们拿到的具体是哪个具体的事物 都可以通过相同的方法调用功能
'''
class Anmimal:
    def spark(self):
    	#叫的方式
    	pass
    
class Cat(Anmimal):
    def spark(self):
        print('喵喵喵')

意义:
	假设我们使用相同的功能去操作不同类型的数据 就可以节省代码
    eg:
    	l1 = [1,2,3]
        s1 = '123'
        d1 = {'1':0,'2':2}
        print(l1.__len__)
        print(s1.__len__)
        print(d1.__len__)
        面对不同数据类型的数据 我们就可以使用相同的方法来计算
'''
鸭子类型

标签:__,name,self,w7,print,class,def
From: https://www.cnblogs.com/xiaochenxiangchangpang/p/16884193.html

相关文章

  • STW78N65M5-ASEMI原厂代理意法MOS管STW78N65M5
    编辑-ZSTW78N65M5用的TO-247封装,是意法一款汽车级MOS管。STW78N65M5的漏源导通电阻RDS(on)为0.024Ω,零栅极电压漏极电流(IDSS)为1uA,栅源漏电流(IGSS)为100nA,其工作时耐温度范围......
  • STW78N65M5意法车规MOS管\原装现货\ASEMI代理
    编辑:llSTW78N65M5意法车规MOS管\原装现货\ASEMI代理型号:STW78N65M5品牌:ASEMI封装:TO-247最大漏源电流:69A漏源击穿电压:650VRDS(ON)Max:0.24Ω引脚数量:3沟道类型:N沟道MOS管芯片尺......
  • ST/意法STW78N65M5汽车级MOSFET,原厂渠道ASEMI代理
    编辑-ZST/意法STW78N65M5汽车级MOSFET参数:型号:STW78N65M5连续漏极电流(ID):69A功耗(Ptot):450W贮存温度和工作结温(Tstg,Tj):-55~150℃漏源击穿电压V(BR)DSS:650V栅极阈值电压V(GS)th......
  • ST/意法STW78N65M5汽车级MOSFET,原厂渠道ASEMI代理
    编辑-ZST/意法STW78N65M5汽车级MOSFET参数:型号:STW78N65M5连续漏极电流(ID):69A功耗(Ptot):450W贮存温度和工作结温(Tstg,Tj):-55~150℃漏源击穿电压V(BR)DSS:650V栅极阈值电......
  • wireshark在window7SP1系统启动提示缺少库文件解决办法
    一、系统环境和问题现象:win7SP1Wireshark-win64-3.4.5.exe在启动wireshare时提示丢失dll 二、解决过程:1、根据报错说丢失这个api-ms-win-crt-runtimel1-1-0.dll,看......