class List(list):def append(self, p_object):if type(p_object) is str:# self.append(p_object)super().append(p_object)else:print('只能添加字符串类型')def show_midlle(self):mid_index=int(len(self)/2)return self[mid_index]# l2=list('hell oworld')
# print(l2,type(l2))l1=List('helloworld')
# print(l1,type(l1))
# print(l1.show_midlle())
l1.append(1111111111111111111111)
l1.append('SB')
print(l1)

module_t=__import__('m1.t')
print(module_t)
# module_t.t.test1()
# from m1.t import *
# from m1.t import test1,_test2
#
# test1()
# _test2()
import  importlib
m=importlib.import_module('m1.t')
print(m)
m.test1()
m._test2()
#_*_coding:utf-8_*_
__author__ = 'Linhaifeng'
class H2O:def __init__(self,name,temperature):self.name=nameself.temperature=temperaturedef turn_ice(self):if self.temperature < 0:print('[%s]温度太低结冰了' %self.name)elif self.temperature > 0 and self.temperature < 100:print('[%s]液化成水' %self.name)elif self.temperature > 100:print('[%s]温度太高变成了水蒸气' %self.name)def aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(self):passclass Water(H2O):pass
class Ice(H2O):pass
class Steam(H2O):passw1=Water('水',25)
i1=Ice('冰',-20)
s1=Steam('蒸汽',3000)# w1.turn_ice()
# i1.turn_ice()
# s1.turn_ice()def func(obj):obj.turn_ice()func(w1)  #---->w1.turn_ice()
func(i1)  #---->i1.turn_ice()
# def func(obj):
#     obj.turn_ice()
#
# func(w1)
# func(i1)
# func(s1)
class BlackMedium:feture='Ugly'def __init__(self,name,addr):self.name=nameself.addr=addrdef sell_hourse(self):print('【%s】 正在卖房子,傻逼才买呢' %self.name)def rent_hourse(self):print('【%s】 正在租房子,傻逼才租呢' % self.name)print(hasattr(BlackMedium,'feture'))
getattr()
#
# b1=BlackMedium('万成置地','天露园')
# b1.name--->b1.__dic__['name']
# print(b1.__dict__)
#
# # b1.name
# # b1.sell_hourse
# print(hasattr(b1,'name'))
# print(hasattr(b1,'sell_hourse'))
# print(hasattr(b1,'selasdfasdfsadfasdfasdfasdfasdl_hourse'))
#
#
#
# print(getattr(b1,'name'))
# print(getattr(b1,'rent_hourse'))
# func=getattr(b1,'rent_hourse')
# func()
# # print(getattr(b1,'rent_hourseasdfsa')) #没有则报错
# print(getattr(b1,'rent_hourseasdfsa','没有这个属性')) #没有则报错
#
#
# # b1.sb=True
# setattr(b1,'sb',True)
# setattr(b1,'sb1',123)
# setattr(b1,'name','SB')
# setattr(b1,'func',lambda x:x+1)
# setattr(b1,'func1',lambda self:self.name+'sb')
# print(b1.__dict__)
# print(b1.func)
# print(b1.func(10))
# print(b1.func1(b1))
# del b1.sb
# del b1.sb1
# delattr(b1,'sb')
# print(b1.__dict__)
import time
class FileHandle:def __init__(self,filename,mode='r',encoding='utf-8'):# self.filename=filenameself.file=open(filename,mode,encoding=encoding)self.mode=modeself.encoding=encodingdef write(self,line):print('------------>',line)t=time.strftime('%Y-%m-%d %X')self.file.write('%s %s' %(t,line))def __getattr__(self, item):# print(item,type(item))# self.file.readreturn getattr(self.file,item)f1=FileHandle('a.txt','w+')
# print(f1.file)
# print(f1.__dict__)
# print('==>',f1.read) #触发__getattr__
# print(f1.write)
f1.write('1111111111111111\n')
f1.write('cpu负载过高\n')
f1.write('内存剩余不足\n')
f1.write('硬盘剩余不足\n')
# f1.seek(0)
# print('--->',f1.read())
# class Foo:
#     x=1
#     def __init__(self,y):
#         self.y=y
#
#     def __getattr__(self, item):
#         print('执行__getattr__')
#
# f1=Foo(10)
# print(f1.y)
# print(getattr(f1,'y'))   #len(str)--->str.__len__()
# f1.sssssssssssssssssssssssssssssssssssss# class Foo:
#     x=1
#     def __init__(self,y):
#         self.y=y
#
#     def __delattr__(self, item):
#         print('删除操作__delattr__')
#
# f1=Foo(10)
# del f1.y
# del f1.x#
# class Foo:
#     x=1
#     def __init__(self,y):
#         self.y=y
#
#     def __setattr__(self, key, value):
#         print('__setattr__执行')
#         # self.key=value
#         self.__dict__[key]=value
# f1=Foo(10)
# print(f1.__dict__)
# f1.z=2
# print(f1.__dict__)
# class Foo:
#     def __getattr__(self, item):
#         print('------------->')
#
# # print(Foo.__dict__)
# print(dir(Foo))
# f1=Foo()
#
# print(f1.x)  #只有在属性不存在时,会自动触发__getattr__
#
# del f1.x #删除属性时会触发_delattr__
#
# f1.y=10
# f1.x=3  # 设置属性的时候会触发——setattr———class Foo:def __init__(self,name):self.name=namedef __getattr__(self, item):print('你找的属性【%s】不存在' %item)def __setattr__(self, k,v):print('执行setattr',k,v)if type(v) is str:print('开始设置')# self.k=v #触发__setattr__self.__dict__[k]=v.upper()else:print('必须是字符串类型')def __delattr__(self, item):print('不允许删除属性【%s】' %item)# print('执行delattr',item)# del self.item# self.__dict__.pop(item)f1=Foo('alex')
# f1.age=18 #触发__setattr__
# print(f1.__dict__)
# print(f1.name)
# print(f1.age)
# print(f1.gender)
# print(f1.slary)
print(f1.__dict__)
del f1.name
print(f1.__dict__)

python包标准类型和动态导入模块和多态和反射和授权相关推荐

  1. Python Day26:多态、封装、内置函数:__str__、__del__、反射(反省)、动态导入模块...

    ## 多态 ```python OOP中标准解释:多个不同类型对象,可以响应同一个方法,并产生不同结果,即为多态 多态好处:只要知道基类使用方法即可,不需要关心具体哪一个类的对象实现的,以不变应万变, ...

  2. python 动态导入类_从动态导入模块中类的字符串名动态实例化?

    tl:博士 使用importlib.import_module导入根模块,并使用getattr函数按名称加载类:# Standard import import importlib # Load &q ...

  3. 动态导入模块__import__(str) importlib标准库

    解释器内部使用的为__import__('str') #!/usr/bin/env python # Author:Zhangmingdaprint('我是aa类 ') #被import的时候就执行c ...

  4. python动态导入检查是否存在_python动态导入模块、检查模块是否安装

    一 动态导入模块 Python的import不能接受变量,所以应该用 __import__函数来动态导入. 如下的代码无法正常导入模块 modules = ['OpenSSL', 'Crypto', ...

  5. python动态导入模块_Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析...

    本文实例讲述了Python动态导入模块:__import__.importlib.动态导入的使用场景.分享给大家供大家参考,具体如下: 相关内容: __import__ importlib 动态导入的 ...

  6. python五十一:动态导入模块,通过字符串导入模块

    目录结构如下: # 动态导入模块方式一: byd = __import__("car.BYD") # 返回的是最顶层的模块print(byd)# byd.run() byd.BYD ...

  7. delstr函数python_Python Day26:多态、封装、内置函数:__str__、__del__、反射(反省)、动态导入模块...

    ## 多态 ```python OOP中标准解释:多个不同类型对象,可以响应同一个方法,并产生不同结果,即为多态 多态好处:只要知道基类使用方法即可,不需要关心具体哪一个类的对象实现的, 以不变应万变 ...

  8. day8 动态导入模块、socket进阶

    文章目录 1. 动态导入模块 2. socket 进阶 1. 动态导入模块 文件目录如下: aa.py 文件中: class C(object):def __init__(self):self.nam ...

  9. Python3 动态导入模块的两种方式

    动态导入模块就是只知道str类型的模块名字符串,通过这个字符串导入模块 需要导入的模块: class Ccc(object):def __init__(self,name):self.name=nam ...

最新文章

  1. Nginx的location、root、alias指令用法和区别
  2. C#之Directory类、DirectoryInfo类和Fileinfo,File以及FilesSystemInfo
  3. 你用过这种奇葩的C#注释吗?如何看待
  4. caffe学习(四):py-faster-rcnn配置,运行测试程序(Ubuntu)
  5. 免费Linux系统和生信宝典原创学习教程
  6. Week04《Java程序设计》第四周学习总结
  7. HackerOne 公布十大漏洞奖励计划“豪门”
  8. 动态展开所有_动态演示立方体的展开,并且显示11种展开图——GeoGebra制作教程...
  9. GO -- 一个经验
  10. JVM监控及诊断工具命令行篇之jstat
  11. TCP/IP---ping命令
  12. 全开源的固定资产设备管理系统,JAVA项目源码
  13. 前端js使用jszip实现文件压缩功能
  14. Godot GUI探讨
  15. python凹多边形分割_直线切割凹多边形
  16. 像素px与厘米怎么换算
  17. 计算机组成原理补码位算法,[计算机组成原理] Booth算法 —— 补码一位乘法
  18. 【DB笔试面试666】在Oracle中,在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?...
  19. narwal机器人_中国黑科技扫地机器人云鲸NARWAL将强势回归国内市场
  20. 微信小程序引入外部icon(阿里巴巴矢量图标)

热门文章

  1. Python学习相关文档
  2. 机器学习-吴恩达-笔记-10-降维
  3. 一些意想不到的bug
  4. JS使用技巧2——momentjs太重了吗?试试dayjs和miment吧
  5. MVP小白入门,只需5步
  6. Linux OPENSSL的简单用法
  7. django 中多字段主键(复合、联合主键)
  8. 性能测试:性能测试指标评估方法
  9. 【八】有验证码登录配置:通过 Cookie 跳过验证码登录接口
  10. oracle中schema是什么,ORACLE中的两个概念:user和schema的区别和联系