面向对象
文章平均质量分 80
Python_bh
这个作者很懒,什么都没留下…
展开
-
Python下划线方法中 __getattr__,__setattr__, __delattr__
1、__getattr__当我们访问一个不存在的属性的时候,会抛出异常,提示我们不存在这个属性。而这个异常就是__getattr__方法抛出的,其原因在于他是访问一个不存在的属性的最后落脚点,作为异常抛出的地方提示出错再适合不过了。看例子,我们找一个存在的属性和不存在的属性。可以看出,访问存在的属性时,会正常返回值,若该值不存在,则会进入最后的兜底函数__getattr__。class A(object): def __init__(self, value): self...原创 2021-01-27 14:01:26 · 164 阅读 · 0 评论 -
类的双下划线方法# __str__ 与__repr__
# __str__ 与__repr__class School: def __init__(self,name,addr,type): self.name = name self.addr = addr self.type = type print('__init__...') def __repr__(self...原创 2020-04-09 14:58:00 · 225 阅读 · 0 评论 -
动态加载模块 与异常处理 type动态创建一个类
# 如果在程序去过过程中,要求程序按用户输入的指令字符串导入对应的模块,在只知道一个模块的字符串名字的情况下,能否导入?# 可跨模块导入必须在同一个python packageimport importlibimportlib.import_module('module.name')异常处理# while True:# num1 = input(">>")#...原创 2020-04-09 14:51:50 · 124 阅读 · 0 评论 -
面向对象编程 基础简单练习
"""设计一个类Person,生成若干实例,在终端输出如下信息小明,10岁,男,上山去砍柴小明,10岁,男,开车去东北小明,10岁,男,最爱大保健老李,90岁,男,上山去砍柴老李,90岁,男,开车去东北老李,90岁,男,最爱大保健"""class Person(): def __init__(self,name,age,sex): self....原创 2020-04-09 14:25:07 · 415 阅读 · 0 评论 -
1静态方法、类方法、属性方法的区别,通过代码来体现 2如何通过反射往一个类里添加一个方法? 3请通过代码实现反射判断当前模块里是否有一个Dog类 4写一个小脚本,不断接收用户指令,根据指令动态导入指定
# 1静态方法、类方法、属性方法的区别,通过代码来体现# class Practice:# name = "类变量"# def __init__(self,name,age):# self.name = name# self.age = age## @classmethod# def user(self):# ...原创 2020-04-09 15:01:34 · 338 阅读 · 0 评论 -
反射 # hasatter 检测是否含有某属性 # getattar 获取属性 # setattr 设置属性 # delattr 删除属性
# hasatter 检测是否含有某属性# getattar 获取属性# setattr 设置属性# delattr 删除属性class Person(object): def __init__(self,name,age): self.name = name self.age = age def say_hi(self): ...原创 2020-04-09 14:45:08 · 234 阅读 · 0 评论 -
面向对象编程--反恐CS游戏""开发一个反恐游戏,有警察、恐怖分子,还有各种武器,他们可以互砍互杀。 注意,警察不能用炸药包,恐怖分子可以。炸药包一用,全部玩家都得死。 提示:可以只写一个Pers
"""开发一个反恐游戏,有警察、恐怖分子,还有各种武器,他们可以互砍互杀。注意,警察不能用炸药包,恐怖分子可以。炸药包一用,全部玩家都得死。提示:可以只写一个Person类,一个weapon类。"""class Person: role = 'person' def __init__(self,name,age,sex): self.name =...原创 2020-04-09 14:27:27 · 546 阅读 · 0 评论