cls

python面试题之Python如何实现单例模式?

一世执手 提交于 2019-11-28 05:53:06
#使用__metaclass__(元类)的高级python用法 class Singleton2(type): def __init__(cls, name, bases, dict): super(Singleton2, cls).__init__(name, bases, dict) cls._instance = None def __call__(cls, *args, **kw): if cls._instance is None: cls._instance = super(Singleton2, cls).__call__(*args, **kw) return cls._instance class MyClass3(object): __metaclass__ = Singleton2 one = MyClass3() two = MyClass3() two.a = 3 print one.a #3 print id(one) #31495472 print id(two) #31495472 print one == two #True print one is two #True #使用装饰器(decorator), #这是一种更pythonic,更elegant的方法, #单例类本身根本不知道自己是单例的,因为他本身(自己的代码)并不是单例的 def

CTS,CLS,CLR解释

半城伤御伤魂 提交于 2019-11-28 03:07:42
问题阐述 CTS、CLS和 CLR分别是什么意思? 专家解答 CTS、CLS和 CLR是.NET框架的 3个核心部分,下面分别对它们进行介绍。 (1)CTS CTS即通用类型系统,它定义了如何在.NET Framework运行库中声明、使用和管理类型,同时也是.NET Framework运行库支持跨语言集成的一个重要组成部分。通用类型系统主要执行以下功能: .建立一个支持跨语言集成、类型安全和高性能代码执行的框架。 .提供一个支持完整实现多种编程语言的面向对象的模型。 .定义各语言必须遵守的规则,有助于确保用不同语言编写的对象能够发生交互作用。 .NET Framework类库中的通用类型系统支持两种类别的类型,分别为值类型和引用类型,下面分别对它们进行简单介绍。 ? 值类型 值类型直接包含它们的数据,值类型的实例要么在堆栈上,要么内联在结构中。值类型可以是内联的(由运行库实现)、用户定义的或枚举的。 ? 引用类型 引用类型存储对值的内存地址的引用,位于堆上。引用类型可以是自描述类型、指针类型或接口类型。引用类型的类型可以由自描述类型的值来确定,自描述类型进一步细分成数组和类类型,类类型是用户定义的类、装箱的值类型和委托。图 1.1 显示了通用类型系统的一般结构。 图 1.1 通用类型系统的结构 (2)CLS CLS 即公共语言规范,它是许多应用程序所需的一套基本语言功能。CLS

详解intent和intentfilter

寵の児 提交于 2019-11-28 00:10:34
1.Intent对象简介   Intent中文意思指"意图",按照Android的设计理念,Android使用Intent来封装程序的"调用意图",不管启动Activity、Service、BroadcastReceiver,Android都使用统一的Intent对象来封装这一"启动意图"。此外,Intent也是应用程序组件之间通信的重要媒介。   Android应用程序包含三种重要组件:Activity、Service、BroadcastReceiver,应用程序采用一致的方式启动它们,都是依靠Intent来进行启动的,Intent中封装了程序要启动的意图。   下面是Intent启动不同组件的部分方法:   Activity组件:startActivity(Intent intent);startActivityForResult(Intent intent,int requestCode);   Service组件:startService(Intent intent);bindService(Intent intent,ServiceConnection conn,int flags);   BroadcastReceiver组件:sendBroadcast(Intent intent);sendOrderedBroadcast(Intent intent,String

函数进阶-装饰器

风格不统一 提交于 2019-11-27 19:45:42
装饰器就是闭包的一个很好的应用拓展!!! 一丶无参装饰器 1.1 什么是装饰器 器指的是工具,而程序中的函数就是具备某一功能的工具,所以装饰器指的是为被装饰器对象添加额外功能。因此定义装饰器就是定义一个函数,只不过该函数的功能是用来为其他函数添加额外的功能。 需要注意的是: 装饰器本身其实是可以任意可调用的对象 被装饰的对象也可以是任意可调用的对象 1.2 为什么要用装饰器 如果我们已经上线了一个项目,我们需要修改某一个方法,但是我们不想修改方法的使用方法,这个时候可以使用装饰器。因为软件的维护应该遵循开放封闭原则,即软件一旦上线运行后,软件的维护对修改源代码是封闭的,对扩展功能指的是开放的。 装饰器的实现必须遵循两大原则: 不修改被装饰对象的源代码 不修改被装饰对象的调用方式 装饰器其实就是在遵循以上两个原则的前提下为被装饰对象添加新功能。 1.3 怎么用装饰器 改变源代码 import time def index(): start = time.time() print('welcome to index') time.sleep(1) end = time.time() print(F"index run time is {start-end}") index() welcome to index index run time is -1.0008180141448975

单例模式

让人想犯罪 __ 提交于 2019-11-27 14:10:08
一、基于__new__ class Single: _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._instance = super(Single, cls).__new__(cls, *args, **kwargs) return cls._instance class Demon(Single): def foo(self): print("Hi") d1 = Demon() d2 = Demon() print(id(d1))  # 2110545800776 print(id(d2))  # 2110545800776 二、基于模块 1、重点:一个文件在一个项目中只加载一次 来源: https://www.cnblogs.com/wt7018/p/11366942.html

学习Faster R-CNN代码rpn(六)

♀尐吖头ヾ 提交于 2019-11-27 10:37:52
代码文件结构 bbox_transform.py # bounding box变换。 generate_anchors.py # 生成anchor,根据几种尺度和比例生成的anchor。 proposal_layer.py # 通过将估计的边界框变换应用于一组常规框(称为“锚点”)来输出对象检测候选区域。选出合适的ROIS。 anchor_target_layer.py # 将anchor对应ground truth。生成anchor分类标签和边界框回归目标。为anchor找到训练所需的ground truth类别和坐标变换信息。 proposal_target_layer_cascade.py # 将对象检测候选分配给ground truth目标。生成候选分类标签和边界框回归目标。为选择出的rois找到训练所需的ground truth类别和坐标变换信息 rpn.py # RPN网络定义。 参考 详细的Faster R-CNN源码解析之RPN源码解析 https://blog.csdn.net/jiongnima/article/details/79781792 Faster R-CNN 入坑之源码阅读 https://www.jianshu.com/p/a223853f8402?tdsourcetag=s_pcqq_aiomsg 对RPN部分代码进行注释。 1 rpn.py 1

Python入门之类方法和静态方法

社会主义新天地 提交于 2019-11-27 05:47:37
示例代码 class Game(object): #类属性 num = 0 #实例方法 def __init__(self): #实例属性 self.name = "laowang" #类方法 @classmethod def add_num(cls): cls.num = 100 #静态方法 @staticmethod def print_menu(): print("----------------------") print(" 穿越火线V11.1") print(" 1. 开始游戏") print(" 2. 结束游戏") print("----------------------") game = Game() #Game.add_num()#可以通过类的名字调用类方法 game.add_num()#还可以通过这个类创建出来的对象 去调用这个类方法 print(Game.num) #Game.print_menu()#通过类 去调用静态方法 game.print_menu()#通过实例对象 去调用静态方法 1. 类方法 是类对象所拥有的方法,需要用修饰器 @classmethod 来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以 cls 作为第一个参数(当然可以用其他名称的变量作为其第一个参数,但是大部分人都习惯以 cls 作为第一个参数的名字,就最好用 cls

Tensorflow版Faster RCNN源码解析(TFFRCNN) (17) rpn_msr/proposal_layer_tf.py

只谈情不闲聊 提交于 2019-11-27 03:46:19
本blog为github上 CharlesShang/TFFRCNN 版源码解析系列代码笔记 --------------- 个人学习笔记 --------------- ---------------- 本文作者吴疆 -------------- ------ 点击此处链接至博客园原文 ------ """ Outputs object detection proposals by applying estimated bounding-box transformations to a set of regular boxes (called "anchors"). 根据RPN目标回归值修正anchors并做后处理输出proposals和全0batch_ind组成的blob """ 1.proposal_layer(rpn_cls_prob_reshape, rpn_bbox_pred, im_info, cfg_key, _feat_stride = [16,], anchor_scales = [8, 16, 32]) 算法逻辑 调用generate_anchors(...)(generate_anchors.py中)产生9个base anchors---> im_info = im_info[0] # 取出第一张图像更新im_info ,存储该图像的宽、高和缩放因子--->

神奇的游戏

心已入冬 提交于 2019-11-27 03:25:30
#include<bits/stdc++.h> #include<windows.h> #include<cstring> #include<fstream> #include<cstdio> #include<iostream> #include<cstdlib> #include<conio.h> using namespace std; int jtcnt,dwcnt,xzgj,l,g2j[101],nian,yue,ri; char op; vector<int>v[90],lin[99]; bool lt[90][90],zz[90][90],sile[99],fs[900]; int tu[90][90],jts[90],yffx[90],zdl[90][90]; static int sj1,sj2,sj3,sj4; int yffy[30][10][10],X,Y; string gjm[99]; struct scdw { int lx; int xh; int ys; }; queue<scdw>sc[90]; void up(); struct danwei { int zl,xh,hp,mb,mbsj,gj; }dw[19999999]; bool yfi[30][10],yft[30][10],yfa[30][10]; void tys(int tj) /

DP&图论 DAY 6 下午 考试

懵懂的女人 提交于 2019-11-27 00:45:17
DP&图论 DAY 6 下午 考试 3 5 10 3 1 3 437 1 2 282 1 5 328 1 2 519 1 2 990 2 3 837 2 4 267 2 3 502 3 5 613 4 5 132 1 3 4 10 13 4 1 6 484 1 3 342 2 3 695 2 3 791 2 8 974 3 9 526 4 9 584 4 7 550 5 9 914 6 7 444 6 8 779 6 10 350 8 8 394 9 10 3 7 10 9 4 1 2 330 1 3 374 1 6 194 2 4 395 2 5 970 2 10 117 3 8 209 4 9 253 5 7 864 8 5 10 6 样例输入 437 526 641 样例输出 题解 >50 pt dij 跑暴力 (Floyd太慢了QWQ O(n^3)) 枚举每个点作为起点,dijkstra,跑暴力 O( (n+m)logn ),寻找全局最短路 #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<cmath> #include<cstdlib> #include<algorithm> #include<queue> using namespace std; inline