类属性

包装类和toString和static关键字

爱⌒轻易说出口 提交于 2019-12-29 21:29:43
包装类   针对八种基本数据类型定义的引用类型。   有类的特点,可以调用类中的方法。 基本数据类型 包装类 boolean Boolean byte Byte short Short int Integer long Long char Character float Float double Double 基本数据类型包装成包装类的实例------装箱(类型要匹配)   通过包装类的构造方法实现:Integer t = new Integer(i);   通过字符串参数构造包装类对象:Float f = new Float("4.56"); 获得包装类对象中包装的基本类型变量-----拆箱(类型要匹配)   调用包装类的.xxxValue()方法:boolean b = bObj.booleanValue(); JDK1.5之后,支持自动装箱,自动拆箱。但类型必须匹配。如果类型不匹配编译不报错,但是运行会报错。   自动装箱:Integer A = 112;//直接赋值就是自动装箱   自动拆箱:int B = A;//将变量A的值赋值给基本数据类型B就是自动拆箱 字符串转换成基本数据类型   通过包装类的构造方法实现:int i = new Integer("12");   通过包装类的parseXxx(String s)静态方法实现:Float f = Float

python

放肆的年华 提交于 2019-12-25 04:47:31
简述try、except语句的用法 程序先执行try中的代码,如果try中代码没有出错,则不会执行except中的异常代码。如果try中的代码出错了,则执行except中的异常代码 简述read. readline. readlines的区别 read会一次性读取文件的全部内容 readline 每次读取一行,并且自带换行功,每一行末尾会读到\n Readlines 一次性以行的形式读取文件的所有内容并返回一个list,需要去遍历读出来 简述实例属性与类属性的区别以及实例方法与类方法,静态方法的区别 类属性和实例属性的区别: 在Python中一切皆对象,类是一个特殊的对象即类对象,描述类的属性称为类属性,它属于类。类属性在内存中只有一份,所有实例对象公用,在__init__外部定义。 实例属性:用来描述类创建出来的实例对象,需要通过对象来访问,在各自对象的内存中都保存一份,在__init__方法内部定义 实例方法、类方法、静态方法的区别: 这三种方法都是保存在类的内存中,调用者不同。 实例方法由对象调用,至少一个self参数,self代表对象的引用。 类方法由类调用,至少一个cls参数,并且需要装饰器@classmethod修饰 静态方法由类调用,不需要参数,需要装饰器@staticmethod修饰 来源: CSDN 作者: 一口吃掉大胖子 链接: https://blog

Python——11面向对象编程基础

流过昼夜 提交于 2019-12-23 10:32:44
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年7月31日 * 版本号:V1.0 * 程序输入:无 * 程序输出:见运行结果 */ 定义类并创建实例 在Python中,类通过 class 关键字定义。以 Person 为例,定义一个 Person类 如下: class Person(object): pass 按照 Python 的编程习惯,类名以 大写字母开头 ,紧接着是(object),表示该类是从哪个类继承下来的。类的继承将在后面的章节讲解,现在我们只需要简单地从 object 类继承。 有了Person类的定义,就可以创建出具体的 xiaoming、xiaohong 等实例。创建实例使用 类名+() ,类似函数调用的形式创建: xiaoming = Person() xiaohong = Person() 创建实例属性 虽然可以通过 Person 类创建出 xiaoming、xiaohong 等实例,但是这些实例看上除了地址不同外,没有什么其他不同。在现实世界中,区分 xiaoming、xiaohong 要依靠他们各自的名字、性别、生日等属性。 如何让 每个实例拥有各自不同的属性

【零】Java高级特性02

≡放荡痞女 提交于 2019-12-17 00:36:00
一、关键字(static) 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中都单独分配一个用于代表国家名称的变量。 1.1 类属性(类变量)、类方法的设计思想 类属性作为该类各个对象之间共享的变量。在设计类时,分析那些类属性不因对象的不同而改变,将这些属性设置为类属性。相应的方法设置为类方法。 如果方法与调用者无关,则这样的方法通常被声名为类方法,由于不需要创建对象就可以调用类方法,从而简化了方法的调用 1.1.1 类变量(Class Variable) 由该类的所有实例共享 1.1.2 类方法(Class Method) 没有对象的实例时,可以用类名.方法名()的形式访问由static标记的类方法 在static发方法内部只能访问类的static属性,不能访问类的非static属性 因为不需要实例就可以访问static方法,因此static方法内部不能有this也不能由super 重载的方法需要同时为static的或者非static的 1.2 使用范围 在Java类中

python类属性和方法,静态方法,设计模式

泄露秘密 提交于 2019-12-16 23:15:36
类属性和方法,静态方法,设计模式 类属性和类方法 类属性:针对类定义的属性,使用赋值语句在class关键字下可以定义类属性 类方法:针对类定义的方法,在类方法内部可以直接访问类属性或调用用其他的类方法 class Toy ( object ) : count = 0 #使用赋值语句定义属性,记录所有的玩具数量 def __init__ ( self , name ) : self . name = name Toy . count += 1 @ classmethod def show_toy_count ( cls ) : print ( '玩具的数量%d' % ( Toy . count ) ) toy1 = Toy ( '小猫' ) toy2 = Toy ( '小狗' ) toy3 = Toy ( '小熊' ) Toy . show_toy_count ( ) #静态方法可以直接用类名调用方法名 其中@classmethod是类方法 静态方法 静态方法,不需要创建对象,直接 (类名.方法名) 就可以直接调用,但是需要写入@staticmethod关键字 class Cat ( object ) : @ staticmethod def call ( ) : print ( '喵喵' ) # 通过类名.方法名 调用静态方法 Cat . call ( ) # 不需要创建对象

类属性

和自甴很熟 提交于 2019-12-16 13:03:30
class MyClass: x='abc' #类属性/类变量/类对象 def __init__(self): #此self的作用是把类绑定的实例送进去(代表当前实例本身),同foo(self),#对实例的属性进行初始化 self.x=3 #此x是实例属性 #__init__()方法不能有返回值,也就是只能是None def foo(self): #foo是类属性,foo也是方法,method方法 #方法代表操作,属性代表数据 print(self.x) #此处可以修改类的属性,类的实例属性print(MyClass.x)a=MyClass() #实例化,初始化 #会调用 def __init__(self):return pass;类中若没有init,则相当于return noneprint(a.x)print(a.foo()) 实例对象instance,object 来源: https://www.cnblogs.com/canglongdao/p/12039056.html

Transferable Joint Attribute-Identity Deep Learning for Unsupervised Person Re-Identification

只谈情不闲聊 提交于 2019-12-11 18:38:36
行人重识别之cross domain Transferable Joint Attribute-Identity Deep Learning for Unsupervised Person Re-Identification (CVPR2018) 原文链接 一篇关于cross domain的文章,发现这类文章有一个相似的规律,即学习行人更具本质的特征。这样在cross domain的时候,这些特征同样适用。比如上一篇文章提到,学习分块图像的特征,这其实就从某种程度上减少了行人姿态(也可以说是摄像头视角)、杂乱的背景等因素的影响。 这篇文章就利用了行人的属性信息。因为和行人的身份不同,属性信息在cross domain后同样适用。 这篇文章的内容比较易懂,我们通过算法框架图对该算法进行介绍。最后讨论一下内在思想。 使用Source数据库,训练身份标签分支(蓝色)和属性分支(紫色),都是使用了交叉熵损失。比如图像有m类属性信息,那么粉色分支的交叉熵损失就将m个损失相加。 重点说一下绿色的部分,是一个自编码器网络,编码器和解码器分别是三个全连接层。编码器生成的eIIA的维度为m,和上述的m类属性信息相对应。自编码器网络的输入是蓝色分支的特征向量。使用三个损失函数对其进行约束。 重构损失: 即自编码器输出与输入的均方误差。 迁移损失: patt是对m类属性的预测,所以也是m维

python进阶概念总结

空扰寡人 提交于 2019-12-10 18:05:49
1、类 类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都相互独立,互不影响。方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据。 通过在实例上的调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节。和静态语言不同,python允许对实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们都是同一个类的不同实例,但拥有的变量名可能是不同的。 2、访问限制 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线 __ ,在Python中,实例的变量名如果以 __ 开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问。 3、继承和多态 继承可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写。 4、实例属性和类属性 实例属性属于各个实例所有,互不干扰 类属性属于类所有,所有实例共享一个属性 不要对实例属性和类属性使用相同的名字,否则将产生难以发现的错误。 5、多重继承 多重继承的概念应该比较好理解,比如现在需要新建一个类baby继承Child,可继承父类及父类上层类的属性及方法,优先使用层类近的方法 class Person(object): def __init__(self,name,sex): self.name = name

python 面向对象

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

类和对象总结

对着背影说爱祢 提交于 2019-12-08 10:36:30
一、类的三大属性:   1、封装:针对的是属性,把属性封装到对象中,保护属性的安全。可通过__name或者_name的方式,getter和setter的方法来间接访问和修改实例的属性,可通过@property装饰器来修饰get_name方法,把该方法的调用改为属性的访问。通过@name.setter装饰器来修饰set_name方法,把该方法的调用改为属性的修改。   2、继承:针对的是类本身,通过子类继承父类的功能,实现代码的复用,程序的简化,功能的扩展,符合OCP(开闭原则),扩展开放修改开闭的原则   3、多态:多态针对的是方法,不同类型的对象可以调用同一个方法或者函数,只要此类对象拥有相同的属性。如len()方法,实质是函数的重载,保证了代码的灵活性   --封装保证了数据的安全性,继承保证了程序的扩展性,多态保证了程序的灵活性。 二、类属性VS实例属性   --直接定义在类代码块的变量叫做类属性,类和实例都可访问,但只能是类可以进行修改。只有那些公共的属性才会放到类属性中,使用不多。   --通过__init__方法初始化或者对象属性直接赋值的方法获得的属性叫做实例属性,实例可以访问,类不能够访问。 三、类方法VS实例方法   --类方法:通过@classmethod装饰器装饰的方法称为类方法,方法中的形参为(cls),类和实例都可访问类方法。   --实例方法