cls

六. python面向对象(内置函数)

拥有回忆 提交于 2019-12-16 17:24:14
一. 内置函数 1.@property(用于场景方法不要传递参数 且有return可以使用 就是普通函数) property 内置装饰器函数 只在面向对象中使用 函数的作用是在新式类中返回属性值。 from math import pi print(pi) class Circle: def __init__(self,r): self.r=r def per(self): # 周长 return 2*pi*self.r def aer(self): # 面积 return self.r**2*pi aa=Circle(3) print(aa.per()) print(aa.aer()) from math import pi # property() 函数的作用是在新式类中返回属性值。 把方法伪装成属性了 class Circle: def __init__(self, r): self.r = r @property # @property 把方法伪装成属性了 def per(self): # 周长 使用 @property 伪装成属性 不能单参数 return 2 * pi * self.r @property def aer(self): # 面积 return self.r ** 2 * pi aa = Circle(3) print(aa.per) #

反射——CRUD小工具

浪子不回头ぞ 提交于 2019-12-16 10:45:02
反射——CRUD小工具 用反射封装了一个用于增删改查的工具类。现在市面上已经有很多成熟的持久层框架,所以这里只是为了熟悉反射机制,且了解一点市面上持久层框架最基础的原理。写的这个工具类有一些限制,比如实体类必须与表名一致,主键名字必须是id,实体类名字与数据库表名必须一致(如UserEntity – userEntity),实体类所有的字段和表的字段需要一致,究其原因是因为没有自己的专门用于关系映射的配置文件或者注解,想要解决关系映射也简单,将映射关系写进一个配置文件或者自己做注解开发做映射。 1、工具类 package com . xsl . util ; import java . lang . reflect . Constructor ; import java . lang . reflect . Field ; import java . sql . * ; import java . util . ArrayList ; import java . util . List ; /** * 一个Crud的小工具类,可以单表增删改查任何实体类 * 前提:表名与类名一致,表名开头小写,类名开头大写,类字段与表字段一致,表字段没有多余的无用字段 * @param <T>实体类 * @param <K>主键 * @author xsl */ public class

基于DFS算法的Ryu+Mininet应用

一曲冷凌霜 提交于 2019-12-10 20:05:34
利用DFS算法,实现Ryu应用,并在Mininet上完成相关验证 Ryu与Mininet相关安装与配置详见: https://blog.csdn.net/haimianxiaojie/article/details/50705288 关于本文内所有完整代码详见: https://github.com/PPPerry/Ryu_projects 中的DFS部分 实现内容如下: 在Mininet上搭建一个20个节点网络(拓扑给定),每个网络节点下挂一个主机; 按照如图所示的拓扑,编写mininet的拓扑代码,各个交换机与主机的序号均相同。 完整的拓扑代码如下: #!/usr/bin/python from mininet . net import Mininet from mininet . node import Controller , RemoteController , OVSController from mininet . node import CPULimitedHost , Host , Node from mininet . node import OVSKernelSwitch , UserSwitch from mininet . node import IVSSwitch from mininet . cli import CLI from mininet .

论文翻译&代码理解-SCRDet: Towards More Robust Detection for Small, Cluttered and Rotated Objects

旧城冷巷雨未停 提交于 2019-12-10 17:11:47
2019.12.10 更新 未完结 3. The Proposed Method 首先,我们在图1中概述了我们的两阶段方法: 在第一阶段,通过添加SF-Net和MDA-Net,可以期望特征图包含更多的特征信息和更少的噪声。为了角度参数的位置灵敏度,此阶段仍使水平框回归。 通过改进的五参数回归和第二阶段中每个提案的旋转非最大抑制(R-NMS)操作,我们可以获得任意旋转下的最终检测结果。 3.1 Finer Sampling and Feature Fusion Network (SF-Net) 在我们的分析中,检测小物体有两个主要障碍: 物体特征信息不足和anchor样本不足 。 原因是由于使用池化层,因此小对象在深层中丢失了大部分特征信息。 同时,高级特征图的较大采样步幅倾向于直接跳过较小的对象,从而导致采样不足。 3.1.1 Feature fusion 通常认为,低级特征图可以保留小对象的位置信息,而高级特征图可以包含高级语义线索。 特征金字塔网络(FPN)[23],自上而下调制(TDM)[35]和与对象先验网络(RON)的反向连接[21]是常见的特征融合方法,涉及高低级特征图不同形式的组合。 3.1.2 Finer sampling 训练样本不足和不平衡会影响检测性能。 通过引入期望的最大重叠(EMO)得分,[45]中的作者计算出锚点和物体之间的期望的最大联合交叉点(IoU)

python 面向对象

别等时光非礼了梦想. 提交于 2019-12-10 08:31:49
# 面向对象 """ 面向对象特点 1.封装: 依据功能需求将某些属性与方法封装到一个类中 2.继承: 实现代码的重复调用,相同的功能调用不需要重复编写 3.多态: 不同的对象调用相同的类方法,产生不同的执行结果 面向对象的基本知识点 类: 描述具有相同的属性和方法的对象的集合,具有抽象性,不能直接使用,主要职责是创建对象 对象:通过类定义的,具有属性与方法的具体实例,可以使用 方法:类中定义的函数 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 局部变量:定义在方法中的变量,只作用于当前实例的类。 实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。 实例化:创建一个类的实例,类的具体对象。 在程序开发中,应该 先有类,再有对象 类和对象的关系: 类是模板,对象是根据类这个模板创建出来的 类只有一个,而对象可以有很多个 类中定义了什么属性和方法,对象中就有什么属性和方法

Python COCO数据集转VOC/旷世数据集转VOC

江枫思渺然 提交于 2019-12-10 02:45:49
最近需要对COCO数据集与旷世数据集进行处理,在网上查了相关资料后感觉不是特别多。COCO最起码还有API支持,旷世基本都没有,因此做个笔记,简要的写个脚本希望可以帮助到相关同学。脚本简陋,只起到抛砖引玉的作用,还望海涵。 github: https://github.com/pansionpan/convert_coco_object365 1.COCO/旷世数据集转VOC 不多啰嗦直接上代码: 一共三个py文件: main.py import os import argparse from cooc_annos2voc import main_coco from object365_annos2voc import main_object365 headstr = """\ <annotation> <folder>VOC</folder> <filename>%s</filename> <source> <database>My Database</database> <annotation>COCO</annotation> <image>flickr</image> <flickrid>NULL</flickrid> </source> <owner> <flickrid>NULL</flickrid> <name>company</name> </owner>

Python元类的一些应用

让人想犯罪 __ 提交于 2019-12-09 20:17:15
最近刚接触python的元类,网络上有比较详细的介绍,这里是在看Django时候发现一点关于元类的应用,做个笔记。 from django.utils import six class A(type): def __new__(cls, name, parents, attrs): return type.__new__(cls, name, parents, attrs) class C(six.with_metaclass(A)): pass 创建C类的时候,他会先调用__metaclass__属性里面的东西。上面C类中的代码可以是 class C(object): __metaclass__ = A def with_metaclass(meta, *bases): """Create a base class with a metaclass.""" # This requires a bit of explanation: the basic idea is to make a dummy # metaclass for one level of class instantiation that replaces itself with # the actual metaclass. class metaclass(meta): def __new__(cls, name

Python的method, class method, static method

馋奶兔 提交于 2019-12-09 20:03:57
method是类的成员函数,必须由类的实例来调用,可以访问类的实例,第一个参数默认是实例。 class method可以由类,类的实例来调用,但第一个参数默认是类 static method可以由类,类的实例来调用,没有默认参数 class A : def __init__ (self) : self.i = 1 @classmethod def cm (cls) : print( "class method, cls=" , cls) def m (self) : print( "method, self={0}, i={1}" .format(self, self.i)) @staticmethod def sm () : print( "static method, A=" , A) if __name__ == '__main__' : a = A() a.m() a.cm() a.sm() 结果如下: method , self =<__ main__ . A object at 0 x02A2D190 >, i =1 class method , cls = < class '__ main__ . A '> static method , A = < class '__ main__ . A '> method就跟C++, Java中的成员方法一样,使用也最普遍

Gson?So easy.

若如初见. 提交于 2019-12-09 15:32:07
1.概述 这篇文章主要讲述了Gson的使用.包括从最基础的基本类型的序列化,到对象,数组,集合,再到Gson注解,Gson Builder,再到格式化,自定义序列化与反序列化等内容. 另外文章篇幅较长,建议挑选所需部分查看.所有例子都提供了完整源码,在文章的后面. 2.Gson是什么? (1)JSON JSON全称为JavaScript Object Notation,一种轻量级的数据交换格式. 类似于XML但比XML更小,更易解析. (2)Gson Gson是Google提供的可以使Java对象与JSON互转的类库,可将Java对象转换为JSON,也可将JSON转换成Java对象. (3)Gson的好处 a.容易,高效,强大:Gson是Google管理的标准化库,经过高度优化,同时api简单,比如fromJSON(),toJSON(). b.无依赖性:不需要其他库,当然jdk除外. c.结果简单:转换成的json易于阅读. d.支持泛型,支持内部类. e.开源,免费提供. 3.配置Gson环境 目前最新的是2.8.6版本. (1)Gradle dependencies { implementation 'com.google.code.gson:gson:2.8.6' } (2)Maven <dependency> <groupId>com.google.code.gson<

4、shell-流程控制

安稳与你 提交于 2019-12-07 12:51:45
1 if 判断 1. 基本语法 if [ 条件判断式 ];then 程序 fi 或者 if [ 条件判断式 ] then 程序 elif [ 条件判断式 ] then 程序 else 程序 fi 注意事项: ( 1 ) [ 条件判断式 ] ,中括号和条件判断式之间必须有空格 ( 2 ) if 后要有空格 2. 案例实操 ( 1 )输入 一个 数字 , 如果 是 1 , 则输出 banzhang zhen shuai, 如果是 2,则 输出 cls zhen mei, 如果是 其它 ,什么也不输出。 [atguigu@hadoop101 datas]$ touch if.sh [atguigu@hadoop101 datas]$ vim if.sh #!/bin/bash if [ $1 -eq "1" ] then echo "banzhang zhen shuai" elif [ $1 -eq "2" ] then echo "cls zhen mei" fi [atguigu@hadoop101 datas]$ chmod 777 if.sh [atguigu@hadoop101 datas]$ ./if.sh 1 banzhang zhen shuai 2、 case 语句 1. 基本语法 case $ 变量名 in " 值 1" ) 如果变量的值等于值 1 ,则执行程序 1