实例变量

python面向对象中类对象、实例对象、类变量、实例变量、类方法、实例方法、静态方法

好久不见. 提交于 2020-04-08 12:26:48
1. 类对象和实例对象   Python 中一切皆对象,Python类本身也是一种对象,类定义完成后,会在当前作用域中定义一个以类名为名字的命名空间。类对象具有以下两种操作: 可以通过“类名()”的方式实例化一个对象。 可以通过“类名.类属性”的方式来访问一个类属性。   如果说类时一种概念性的定义,是一种类别,那么实例对象就是对这一类别的具体化、实例化,即实例化对象是类对象实例化之后的产物。 class Person:# 声明一个类对象 pass p1 = Person()#声明一个实例对象 print(Person)#输出结果:<class '__main__.Person'> print(p1)#<__main__.Person object at 0x0000015F7F94D0F0> 2 类变量与实例变量 2.1 概念上的区别   类变量是指是指该类的所有实例说共有的数据,实例变量是该类每一个实例所特有的数据。这么说的话可能还是很抽象,我们拿人类(Person类)来打比方,人类能移动(move=True),这是每一个人(张三、李四)都能做的,所以我们可以说人类能移动,张三能移动,李四也能移动,这里的移动(move)就是一个类变量。但每一个人都可能有不同的姓名(name)和年龄(age),张三可能20岁,李四可能30岁,但是我们不能说人类(Person)都是20岁或30岁

Effective Objective-C2.0读书小记(二)对象内部访问实例变量

别等时光非礼了梦想. 提交于 2020-04-07 12:08:29
第七条:在对象内部尽量直接访问实例变量 在对象内部访问实例变量时,可以通过"属性访问"或"直接访问"。 ①属性访问(self.button):点语法,通过存取方法来访问相关实例变量 ②直接访问(_button):不经由存取方法,直接访问实例变量 区别: (1)直接访问,速度快。 (2)直接访问实例变量,不会调用其"设置方法"。比如说:在ARC下直接访问一个声明为copy的属性,那么不会拷贝该属性,只会保留新值释放旧值。 (3)直接访问不会触发"键值观测"(KVO) (4)通过属性访问有助于排查与之相关的错误,可以给"获取方法"、"设置方法"新增断点,监控该属性的调用者,和访问时机。 建议: 以"直接访问"的形式读取实例变量,通过"属性"设置实例变量。 注意: 惰性初始化(懒加载)要采用直接访问的方式来读取数据。 来源: oschina 链接: https://my.oschina.net/u/2886189/blog/790626

Apple Swift语言中文教程

坚强是说给别人听的谎言 提交于 2020-04-06 21:57:29
Apple Swift编程语言入门教程 目录 1 简介 2 Swift入门 3 简单值 4 控制流 5 函数与闭包 6 对象与类 7 枚举与结构 1 简介 今天凌晨Apple刚刚发布了Swift编程语言,本文从其发布的书籍《The Swift Programming Language》中摘录和提取而成。希望对各位的iOS&OSX开发有所帮助。 Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束。Swift采用了安全的编程模式和添加现代的功能来是的编程更加简单、灵活和有趣。界面则基于广受人民群众爱戴的Cocoa和Cocoa Touch框架,展示了软件开发的新方向。 Swift已经存在了多年。Apple基于已有的编译器、调试器、框架作为其基础架构。通过ARC(Automatic Reference Counting,自动引用计数)来简化内存管理。我们的框架栈则一直基于Cocoa。Objective-C进化支持了块、collection literal和模块,允许现代语言的框架无需深入即可使用。(by gashero)感谢这些基础工作,才使得可以在Apple软件开发中引入新的编程语言。 Objective-C开发者会感到Swift的似曾相识。Swift采用了Objective-C的命名参数和动态对象模型

Activiti

风格不统一 提交于 2020-04-06 17:29:10
1.Activiti中个人任务分配 1.1分配任务负责人: 1.1.1 固定分配,每一个任务都是固定的人进行执行 1.1.2 表达式分配: UEL表达式,统一表达式语言,在activiti当中支持两种形式,一种是value,另外一种是method形式 1.1.3 创建流程图,给每一个环节制定assignee值,通过UEL表达式分配任务负责人 1.1.4 流程部署 1.1.5 创建流程实例,制定任务执行人 /** * 启动一个流程实例 */ @Test public void getInstance(){ //获取ProcessEngine对象 默认配置文件名称:activiti.cfg.xml 并且configuration的Bean实例ID为processEngineConfiguration ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); //获取RuntimeService RuntimeService runtimeService = processEngine.getRuntimeService(); //定义一个Map集合,存放assignee的值 Map<String,Object> assMap=new HashMap<>(); assMap.put(

C#--深入理解类型

女生的网名这么多〃 提交于 2020-04-03 14:33:19
List分组迭代器 说明: 针对长度较大的List对象,可以分组批量进行处理, 如:长度为1000的List对象,可分为10组,每组100条,对数据进行业务逻辑处理... Source /****************************************************************************** * 名称:List分组迭代器 * 说明:针对长度较大的List对象,可以分组批量进行处理 * 如:长度为1000的List<int>对象,可分为10组,每组100条,对数据进行业务逻辑处理 * 作者:Sybs * 时间:2018-10-15 * **************************************************************************/ namespace System.Collections.Generic { /// <summary> /// List分组迭代器 /// </summary> public class ListGroupIterator<T> { private int _groupsize = 1; /// <summary> /// 分组大小(缺省值为1) /// </summary> public int GroupSize { get =>

值传递和引用传递的讲解

廉价感情. 提交于 2020-04-03 13:23:50
值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。 引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行 中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。 1·实例:值传递:传递的是值的拷贝,也就是说传递后就互不相关了。 public class TempTest { private void test1(int a){ a = 5; System.out.println("test1方法中的a="+a); } public static void main(String[] args) { TempTest t = new TempTest(); int a = 3; t.test1(a);//传递后,test1方法对变量值的改变不影响这里的a System.out.println(”main方法中的a=”+a); } } 执行结果是 test1方法中的a=5 main方法中的a=3 2:引用传递:传递的参数是按引用进行传递,其实传递的引用的地址

python字符串(大小写、判断、查找、分割、拼接、裁剪、替换、格式化)

ぃ、小莉子 提交于 2020-04-02 18:54:02
一、通用操作 1、Python len() 方法返回对象(字符、列表、元组等)长度或项目个数。 语法 len()方法语法: len( q ) 参数 q -- 对象。 返回值 返回对象长度。 实例 以下实例展示了 len() 的使用方法: >>>str = "runoob" >>> len(str) # 字符串长度 6 >>> l = [1,2,3,4,5] >>> len(l) # 列表元素个数 5 2、python 成员运算符 in 和 not in Python成员运算符测试给定值是否为序列中的成员,例如字符串,列表或元组。 有两个成员运算符,如下所述 - in 如果在指定的序列中找到一个变量的值,则返回true,否则返回false。 not in 如果在指定序列中找不到变量的值,则返回true,否则返回false。 in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 以下实例演示了Python所有成员运算符的操作: #!/usr/bin/python3 a = 10 b = 20 list = [1, 2, 3, 4, 5 ]; if ( a

雷林鹏分享:Java 变量类型

故事扮演 提交于 2020-03-30 15:04:58
  在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:   type identifier [ = value][, identifier [= value] ...] ;   格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。   以下列出了一些变量的声明实例。注意有些包含了初始化过程。   int a, b, c; // 声明三个int型整数:a、 b、c。   int d = 3, e, f = 5; // d声明三个整数并赋予初值。   byte z = 22; // 声明并初始化z。   double pi = 3.14159; // 声明了pi。   char x = 'x'; // 变量x的值是字符'x'。   Java语言支持的变量类型有:   局部变量   成员变量   类变量   Java局部变量   局部变量声明在方法、构造方法或者语句块中;   局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;   访问修饰符不能用于局部变量;   局部变量只在声明它的方法、构造方法或者语句块中可见;   局部变量是在栈上分配的。   局部变量没有默认值,所以局部变量量被声明后,必须经过初始化,才可以使用。   实例1   在以下实例中age是一个局部变量

Java多线程中static变量的使用

老子叫甜甜 提交于 2020-03-30 11:44:35
线程,是我们项目中绕不过的重点领域。提到线程,就常会听到线程安全的术语。那什么是线程安全呢?通俗点说,就是线程访问时不产生资源冲突。其实,这是一个有点难以定义的概念,不是很容易让人一听就懂的概念。“一个类可以被多个线程安全调用就是线程安全的”《 Java 并发编程实践》。 来说说静态变量、实例变量、局部变量在多线程下的安全问题吧! (一)静态变量:线程非安全 1、静态变量:使用static关键字定义的变量。static可以修饰变量和方法,也有static静态代码块。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被 类的所有实例共享 。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。 用public修饰的static成员变量和成员方法本质是 全局 变量和全局方法,当声明它的类的对象时,不生成static变量的副本,而是类的所有实例共享同一个static变量。 2、静态变量使用的场景: (1)对象间共享值时 (2)方便访问变量时 3、静态方法使用注意事项: (1)不能在静态方法内使用非静态变量,即不能直接访问所属类的实例变量; (2)不能在静态方法内直接调用非静态方法; (3)静态方法中不能使用this和super关键字; 4

python流程控制

青春壹個敷衍的年華 提交于 2020-03-29 16:23:47
流程控制概念 什么是流程控制? 所谓的流程控制是计算机运算领域的用语意指在程序运行时个别的指令(或是陈述 子程序)运行或求值的顺序不论是在声明式编程语言还是函数式编程语言都有类似的概念 关于声明式编程语言和函数式编程语言详解 以上是官方的解释,我们列举一个现实中的实例来具体说明一下 假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的。你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。 if...else 语句 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性。须重要理解,if、while、for以及与它们相搭配的 else、 elif、break、continue和pass语句 详解 if语句 Python中的if子句由三部分组成:关键字本身、用于判断结果真假的条件表达式以及当表达式为真或者非零时执行的代码块。if 语句的语法如下: if 执行条件: 执行体 if语句有三种形式: 单分支 if 条件: 满足条件后要执行的代码 双分支 语法: if 条件: 满足条件执行代码 else: if条件不满足就走这段 实例: Name = 'yefei' if