老男孩python全栈s21day21作业(面向对象)
列举你了解的面向对象中的特殊成员,并为每个写代码示例。
class Foo(object):def __init__(self):"""用于给对象中赋值,初始化方法"""self.x = 123def __new__(cls, *args, **kwargs):"""用于创建空对象,构造方法:param args: :param kwargs: :return: """return object.__new__(cls)def __call__(self, *args, **kwargs):print('执行call方法')def __setitem__(self, key, value):passdef __getitem__(self, item):return item + 'uuu'def __delitem__(self, key):passdef __str__(self):"""只有在打印对象时,会自动化调用此方法,并将其返回值在页面显示出来:return: """return 'asdfasudfasdfsad'obj = Foo() Foo()() obj1 = Foo() obj1['k1'] = 123 # 内部会自动调用 __setitem__方法 val = obj1['xxx'] # 内部会自动调用 __getitem__方法 print(val) del obj1['ttt'] # 内部会自动调用 __delitem__ 方法obj2 = Foo() print(obj2)#asdfasudfasdfsad
class Foo(object):def __init__(self,name,age,email):self.name = nameself.age = ageself.email = emailobj = Foo('alex',19,'xxxx@qq.com') print(obj) print(obj.name) print(obj.age) print(obj.email) val = obj.__dict__ # 去对象中找到所有变量并将其转换为字典 print(val)
看代码写结果
class Foo(object):def __init__(self, age):self.age = agedef display(self):print(self.age)data_list = [Foo(8), Foo(9)] for item in data_list:print(item.age, item.display()) #8 #8 None #9 #9 None
看代码写结果
class Base(object):def __init__(self, a1):self.a1 = a1def f2(self, arg):print(self.a1, arg)class Foo(Base):def f2(self, arg):print('666')obj_list = [Base(1), Foo(2), Foo(3)] for obj in obj_list:obj.f2(1)#1 1 #666 #666
看代码写结果
class StarkConfig(object):def __init__(self,num):self.num = numdef changelist(self,request):print(self.num,request)class RoleConfig(StarkConfig):def changelist(self,request):print('666')config_obj_list = [StarkConfig(1),StarkConfig(2),RoleConfig(3)] for item in config_obj_list:print(item.num)#1 #2 #3
看代码写结果
class StarkConfig(object):def __init__(self,num):self.num = numdef changelist(self,request):print(self.num,request)class RoleConfig(StarkConfig):passconfig_obj_list = [StarkConfig(1),StarkConfig(2),RoleConfig(3)] for item in config_obj_list:item.changelist(168)#1 168 #2 168 #3 168
看代码写结果
class StarkConfig(object):def __init__(self,num):self.num = numdef changelist(self,request):print(self.num,request)class RoleConfig(StarkConfig):def changelist(self,request):print(666,self.num)config_obj_list = [StarkConfig(1),StarkConfig(2),RoleConfig(3)] for item in config_obj_list:item.changelist(168)#1 168 #2 168 #666 3
看代码写结果
class StarkConfig(object):def __init__(self,num):self.num = numdef changelist(self,request):print(self.num,request)def run(self):self.changelist(999)class RoleConfig(StarkConfig):def changelist(self,request):print(666,self.num)config_obj_list = [StarkConfig(1),StarkConfig(2),RoleConfig(3)] config_obj_list[1].run() config_obj_list[2].run() #2 999 #666 3
看代码写结果
class StarkConfig(object):def __init__(self,num):self.num = numdef changelist(self,request):print(self.num,request)def run(self):self.changelist(999)class RoleConfig(StarkConfig):def changelist(self,request):print(666,self.num)class AdminSite(object):def __init__(self):self._registry = {}def register(self,k,v):self._registry[k] = vsite = AdminSite() print(len(site._registry)) #0 site.register('range',666) site.register('shilei',438) print(len(site._registry)) #2site.register('lyd',StarkConfig(19)) site.register('yjl',StarkConfig(20)) site.register('fgz',RoleConfig(33))print(len(site._registry)) #5 print(site._registry) #{'range': 666, 'shilei': 438, 'lyd': <__main__.StarkConfig object at 0x0000021D3E4DAE48>, 'yjl': <__main__.StarkConfig object at 0x0000021D3E4DAE80>, 'fgz': <__main__.RoleConfig object at 0x0000021D3E4DAEB8>}
看代码写结果
class StarkConfig(object):def __init__(self,num):self.num = numdef changelist(self,request):print(self.num,request)def run(self):self.changelist(999)class RoleConfig(StarkConfig):def changelist(self,request):print(666,self.num)class AdminSite(object):def __init__(self):self._registry = {}def register(self,k,v):self._registry[k] = vsite = AdminSite() site.register('lyd',StarkConfig(19)) site.register('yjl',StarkConfig(20)) site.register('fgz',RoleConfig(33)) print(len(site._registry)) # 3for k,row in site._registry.items():row.changelist(5) #19 5 #20 5 #666 33
看代码写结果
class StarkConfig(object):def __init__(self,num):self.num = numdef changelist(self,request):print(self.num,request)def run(self):self.changelist(999)class RoleConfig(StarkConfig):def changelist(self,request):print(666,self.num)class AdminSite(object):def __init__(self):self._registry = {}def register(self,k,v):self._registry[k] = vsite = AdminSite() site.register('lyd',StarkConfig(19)) site.register('yjl',StarkConfig(20)) site.register('fgz',RoleConfig(33)) print(len(site._registry)) # 3for k,row in site._registry.items():row.run()#19 999 #20 999 #666 33
看代码写结果
class UserInfo(object):passclass Department(object):passclass StarkConfig(object):def __init__(self,num):self.num = numdef changelist(self,request):print(self.num,request)def run(self):self.changelist(999)class RoleConfig(StarkConfig):def changelist(self,request):print(666,self.num)class AdminSite(object):def __init__(self):self._registry = {}def register(self,k,v):self._registry[k] = v(k)site = AdminSite() site.register(UserInfo,StarkConfig) site.register(Department,StarkConfig) print(len(site._registry)) #2 for k,row in site._registry.items():row.run()#<class '__main__.UserInfo'> 999 #<class '__main__.Department'> 999
看代码写结果
class F3(object):def f1(self):ret = super().f1()print(ret)return 123class F2(object):def f1(self):print('123')class F1(F3, F2):passobj = F1() obj.f1()#123 #None
看代码写结果
class Base(object):def __init__(self,name):self.name = nameclass Foo(Base):def __init__(self,name):super().__init__(name)self.name = "于大爷"obj1 = Foo('alex') print(obj1.name)obj2 = Base('alex') print(obj2.name)#于大爷 #alex
看代码写结果
class Base(object):passclass Foo(Base):passobj = Foo()print(type(obj) == Foo)#True print(type(obj) == Base)#False print(isinstance(obj,Foo))#True print(isinstance(obj,Base))#True
看代码写结果
class StarkConfig(object):def __init__(self, num):self.num = numdef __call__(self, *args, **kwargs):print(self.num) class RoleConfig(StarkConfig):def __call__(self, *args, **kwargs):print(self.num)v1 = StarkConfig(1) v2 = RoleConfig(11)v1() v2() #1 #11
看代码写结果
class StarkConfig(object):def __init__(self, num):self.num = numdef run(self):self()def __call__(self, *args, **kwargs):print(self.num)class RoleConfig(StarkConfig):def __call__(self, *args, **kwargs):print(345)def __getitem__(self, item):return self.num[item]v1 = RoleConfig('alex') v2 = StarkConfig("wupeiqi")print(v1[1])#l print(v2[2])#报错
补全代码
class Context:passwith Context() as ctx:ctx.do_something()
class Context:def __enter__(self):return selfdef __exit__(self, exc_type, exc_val, exc_tb):passdef do_something(self):passwith Context() as ctx:ctx.do_something()
补全代码
class Stack(object):def __init__(self):self.data_list = []def push(self,val):passdef pop(self):passobj = Stack() # 调用push方法,将数据加入到data_list中。 obj.push('alex') obj.push('武沛齐') obj.push('金老板')# 调用pop讲数据从data_list获取并删掉,注意顺序(按照后进先出的格式) v1 = obj.pop() # 金老板 v2 = obj.pop() # 武沛齐 v3 = obj.pop() # alex# 请补全Stack类中的push和pop方法,将obj的对象维护成 后进先出 的结构。
class Stack(object):def __init__(self):self.data_list = []def push(self, val):self.data_list.append(val)def pop(self):self.data_list.pop()obj = Stack() obj.push('alex') obj.push('武沛齐') obj.push('金老板') v1 = obj.pop() # 金老板 v2 = obj.pop() # 武沛齐 v3 = obj.pop() # alex
如何主动触发一个异常?
try:int('123')raise Exception('主动触发了一个异常') # 代码中主动抛出异常 except Exception as e:print(e)
看代码写结果
def func(arg):try:int(arg)except Exception as e:print('异常')finally:print('哦')func('123') func('二货')# 哦 # 异常 # 哦
老男孩python全栈s21day21作业(面向对象)相关推荐
- 老男孩python全栈s21day25作业
一.正则表达式练习 1.匹配整数或者小数(包括正数和负数) \-?\d+(\.\d+)? 2.匹配年月日日期 格式2018-12-6 \d{1,4}\-\d{1,2}\-\d{1,2} 3.匹配qq号 ...
- 老男孩python全栈s21day04作业
简述解释性语言和编译型语言的区别? 编译型语言:代码结束后,编码器会将其完全编译成另一种更贴近机器语言的文件,然后交给计算机执行 解释型语言:代码结束后,解释器会根据代码进行逐行的解释,这个过程边解释 ...
- 老男孩python全栈s21day03作业
day03 作业 有变量name = "aleX leNb " 完成如下操作: 移除 name 变量对应的值两边的空格,并输出处理结果 name = "aleX leNb ...
- 老男孩python全栈s21day15作业
sys.path.append("/root/mods")的作用? 把路径/root/mods添加到python寻找模块的路径中 字符串如何进行反转? 切片[::-1] 不用中间变 ...
- 老男孩python全栈s21day02作业
day02作业 1.猜数字,设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了:如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确,然后退出循环. valu ...
- 老男孩Python全栈9期视频完整版
老男孩Python全栈9期视频完整版 B站:更新最快,内容最全(现已上传完毕,欢迎来撩) https://www.bilibili.com/video/av28244491/ # 第一部分:基础+模块 ...
- 最新《老男孩Python全栈3期项目实战》
2018年老男孩python全栈第三期python全栈3期!2018最新Python高级全栈工程师+人工智能VIP顶级课程全套视频教程下载.某知名IT教育培训机构4个月绝密培训教程!优秀的Python ...
- python全栈开发工程师招聘_如何成为Python全栈开发工程师?老男孩Python全栈开发...
对于Python这门编程语言,想必大家都是比较熟悉的,但是说道Python全栈开发,很多人就有点不解是什么意思,接下来我们共同看看吧. 什么是Python全栈开发工程师?简单的来说就是从前端页面的实现 ...
- 路飞学城老男孩Python全栈开发实战鸡汤部分Alex
需要购买路飞学城内部教材,Python全栈开发实战这本书的同学,可以看这篇博文. https://www.cnblogs.com/yigongzi/p/9370817.html 转载于:https:/ ...
- 老男孩Python全栈学习 S9 日常作业 006
1.使用循环打印以下效果: 1: * ** *** **** ***** 2: ***** **** *** ** * 3: * *** ***** ******* ********* for i i ...
最新文章
- GPU指令集技术分析
- Spring AOP是什么?你都拿它做什么?
- Linux 命令小汇总
- 成功解决label_error >= 0 label_error < static_cast<int>(nclass) MultiClassEvaluation: label must be i
- 技术分享|明源云天际集成开放平台接口中心基于IdentityServer4的鉴权机制
- 只想问你一句:“伤害我,你会心疼吗?”
- 并发说明:如何构建多线程iOS应用
- 产品研发过程管理专题——产品需求分析原则二
- VB INET控件的全部用法
- regexp函数 mysql_mysql 五中的REGEXP函数_mysql
- 自定义Dialog的小实战——根据地区选择手机号码前缀
- 斐讯K2 刷breed 再刷 固件 。
- 产品申请UL标志包括以下几个步骤
- 双摄像头另一个有什么用_手机双摄像头为什么有前后和后双两种?各有什么用?...
- 如何成为一个 IT 界的女装大佬?
- 松香的用法(电烙铁焊接)
- Downloads Help 下载帮助
- 输入文字时自动带空格解决办法
- 入网许可证_什么是入网许可证
- 【数据库】mysql、oracle、sqlserver按照字典顺序