class Emperor:
# 实例方法
def find(self):
print("两处茫茫皆不见")
li = Emperor()
li.find() # 两处茫茫皆不见
class Master:
content = "为感君王辗转思,遂教方士殷勤觅。"
@ classmethod
def call(cls):
print("临邛道士鸿都客,能以精诚致魂魄。", end="")
# 获取类属性需要在前面加cls.
print(cls.content)
# 类型名称调用
Master.call() # 临邛道士鸿都客,能以精诚致魂魄。为感君王辗转思,遂教方士殷勤觅。
# 对象引用调用
master = Master
master.call() # 临邛道士鸿都客,能以精诚致魂魄。为感君王辗转思,遂教方士殷勤觅。
class Master:
@ staticmethod
def find():
print("为感君王辗转思,遂教方士殷勤觅")
Master.find() # 为感君王辗转思,遂教方士殷勤觅
方法名称 | 实例方法 | 类方法 | 静态方法 |
---|---|---|---|
实例属性数据 | 是 | 否 | 否 |
类属性数据 | 是 | 是 | 否 |
局部变量数据 | 是 | 是 | 是 |
反射方法(内建函数):
class Emperor:
def __init__(self, name):
self.name = name
def search(self, obj):
# 用反射判断是否存在对应的方法,输出不同结果
# 查询属性
if hasattr(obj, "like"):
# 获取属性
res = getattr(obj, "like")
return res()
else:
print("排空驭气奔如电,升天入地求之遍。上穷碧落下黄泉,两处茫茫皆不见。")
class Consort:
def __init__(self, name):
self.name = name
def like(self):
print("楼阁玲珑五云起,其中绰约多仙子。中有一人字太真,雪肤花貌参差是。")
class Person:
pass
# 创建对象
li = Emperor("李隆基")
yang = Consort("杨玉环")
per = Person()
# 根据反射条件返回结果
li.search(per) # 排空驭气奔如电,升天入地求之遍。上穷碧落下黄泉,两处茫茫皆不见。
li.search(yang) # 楼阁玲珑五云起,其中绰约多仙子。中有一人字太真,雪肤花貌参差是。
# 修改
setattr(li, "name", "唐玄宗")
print(li.name) # 唐玄宗
# 新增(不推荐在类型定义外新增属性)
setattr(li, "age", 52)
print(li.age) # 52
# 删除
delattr(li, "age")
print(li.age) # 报错 'Emperor' object has no attribute 'age'
class Emperor:
_emperor = None
def __new__(cls, *args, **kwargs):
if not cls._emperor:
cls._emperor = object.__new__(cls) # 不存在则创建
return cls._emperor
def __init__(self, name): # 每次执行创建初始化仍然回执行,但都是同一个对象
self.name = name
emp1 = Emperor("李隆基")
print(emp1.name) # 李隆基
emp2 = Emperor("唐玄宗")
print(emp2.name) # 唐玄宗
emp3 = Emperor("唐明皇")
print(emp3.name) # 唐明皇
# 虽然有三个引用变量,但是id是一样的,即始终是同一个对象
print(id(emp1), id(emp2), id(emp3)) # 2178250177224 2178250177224 2178250177224
# 打印出来都是最后一次修改的属性
print(emp1.name, emp2.name, emp3.name) # 唐明皇 唐明皇 唐明皇
如果只需执行一次初始化:
class Emperor:
_emperor = None
# 是否已经初始化的标记
init_note = False
def __new__(cls, *args, **kwargs):
if not cls._emperor:
cls._emperor = object.__new__(cls) # 不存在则创建
return cls._emperor
def __init__(self, name):
# 判断是否已经初始化,如果已经未初始化则进行初始化
if Emperor.init_note is False:
self.name = name
# 初始化后修改标记
Emperor.init_note = True
# 如果已经初始化则不执行初始化并直接返回
else:
return
emp1 = Emperor("李隆基")
print(emp1.name) # 李隆基
emp2 = Emperor("唐玄宗")
print(emp2.name) # 唐玄宗
emp3 = Emperor("唐明皇")
print(emp3.name) # 唐明皇
# 只有第一次创建对象时初始化
print(emp1.name, emp2.name, emp3.name) # 李隆基 李隆基 李隆基
文章浏览阅读222次。字符串排序题目描述先输入你要输入的字符串的个数。然后换行输入该组字符串。每个字符串以回车结束,每个字符串少于一百个字符。 如果在输入过程中输入的一个字符串为“stop”,也结束输入。 然后将这输入的该组字符串按每个字符串的长度,由小到大排序,按排序结果输出字符串。输入描述:字符串的个数,以及该组字符串。每个字符串以‘\n’结束。如果输入字符串为“stop”,也结束输入.输出描述:可能有多组测试数据,对于每组数据,将输入的所有字符串按长度由小到大排序输出(如果有“stop”,不输出“stop”)_在线字符串排序
文章浏览阅读6.6k次。图中的几项都点击放开刷新页面就可以了。_network无接口被调用
文章浏览阅读5.7k次。System.Reflection.TargetInvocationException,This implementation is not part of the windows platform FIPS validated......解决方法: 打开注册表,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\F_"u8在win7下运行出现处理配置失败,异常为\" system . reflection . targetinvoc"
文章浏览阅读1.9k次。1.第一批6个。 用于标题醒目标签h1-h6,有上下行距 可以换行.注意:不能互相嵌套,属于行级标签 div:页面中的块,只有换行效果。注意:可以嵌套任何标签p:页面中的段落,有上下行距。注意:标签虽然是块级元素,但是它只能包含内联元素,不能包含块级元素,也不能包含另一个<p> 标签 span:隔离标签,没有任何样式。但是它很有用。 br:换行,没有结束标签。 hr:水平分割线,没有结束标签。 hr和br等标签有特殊写法,不需要按..._web前端标签页
文章浏览阅读511次。simulink2.ppt-动态系统仿真——Simulink.ppt动态系统仿真——Simulink 主讲人:鲍文 目录 发展历史 基本使用 模型介绍 数值仿真 高级分析 例题 一、发展历史 1、动态系统仿真 CSCAD(E) 80年代前:自己编程序,C/FORTRAN 90年代后:集成仿真环境 VisSim ..._非线性系统的 传递函数
文章浏览阅读870次。求大神相助,本人新手一枚,以前一直用Eclipse想转Idea,结果把项目从svn拉下来,Tomcat运行项目页面一直报500错误,日志如下严重: Servlet.service() for servlet jsp threw exception at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java..._servlet.service() for servlet (jsp)whrow exception
文章浏览阅读892次。在清晨的八点,走出小区的大门,热气腾腾的市场,毫无规矩的车辆,一脸蜡像的人群,空气中隐藏的愿望,从未被提起的那些故事,那即将失去的时间,即将开始的生活,这个世界变得越难越难理解,如同城里开始变得越来越不如郊区,道路越修越堵,人们却越来越喜欢买车,写字楼盖得越来越多,却还是很难找到工作,淘宝上的二手货竟然会比新货的价格还高,而5块钱的汽油继08年之后竟然真的再次出现了,坐火车基本上..._熊熊作业我去
文章浏览阅读4.7k次。100G 数据,按照 100M 内存拆分,然后排序有序的数据,然后写入到 file1,file2…file100。多路归并。第一回合:从 file1,file2,file3……file100.取出第一个数。及最小的。所有的初始指针都是第一行。min1=min(min1=min(fil1,file2,file3……file100);file2,file3……file100);min1 写入..._java一个 g 数字文件,100m 内存,排序
文章浏览阅读7.7k次,点赞4次,收藏11次。疑问为什么打开部分字节码文件(.class)文件,看到部分类报红,找不到该类,难道真的没有该类?那编译的时候不报错吗?Spring在启动的时候为什么会可以正常启动,没有该类还会正常启动,Spring是如何加载和处理这些类的呢?项目启动后,该类会被JVM加载初始化吗?疑点分析这里我随便找了一个类,里面包含一些没有的class,见下图发现字节码文件(RxReactiveStreams.class)不存在,那我在另外一个比较完整的项目,找到该类属于[rxjava-reactive-s_@conditionalonmissingclass
文章浏览阅读6.8k次。tightvnc一款用于windows操作系统的应用软件,是一款远程控制软件。出门在外忘了带档案怎么办?FTP server 上头忘了开帐号怎么办?这些麻烦的问题其实都可以靠 VNC 解决。tightvnc的是一个免费的远程控制软件包。能让你轻松控制远程的计算机,就像坐在自己家的计算机前面一般,让你出门在外无后顾之忧!但是小编使用过一款也非常好的vnc工具,名字叫IIS7服务器管理工具。这个工具里面的VNC功能可以说是使用感非常棒的。它可以一键导出或导入,还可以一键批量打开VNC,还可以一键批量关闭VN
文章浏览阅读3.6k次。测试时出现这个报错:@Resource的位置写错了,或者多写了一个注解
文章浏览阅读1.4k次。如果企业内部需要同时管理下面N个分支机构的计算机,只要总部和分支机构都可以连上互联网便可以实现:首先需要IP-guard V3服务器的局域网有固定的公网IP地址或者有动态域名,在网关对IP-guard V3服务器的IP地址添加8237和8236、8235的TCP端口映射;添加完成后在IP-guard V3服务器创建客户端安装程序时在【服务器 IP/名称】栏输入固定的IP地址(或者动态域名),将打包成功的客户端安装程序提供给分支机构的计算机安装即可。说明:如果记录了文档备份、屏幕历史、邮件附件等数据量_ip-guard批量部署客户端的方法