返回值

函数返回值与作用域

匿名 (未验证) 提交于 2019-12-02 23:49:02
有函数如下: def my_calc(x, y): res = x**y print(res) my_calc(2,5) 输出结果:32 函数可以得到我们想要的结果,并打印了。但是问题来了,我们如果想要得到并能使用这个结果,这种方式肯定不行。这个时候就需要用到返回返回值。 使用return语句就可以达到这个目的,后续的计算判断就可以直接使用data def my_calc(x, y): res = x**y return res data = my_calc(2,5) print(data) 补充: 函数在执行中遇到return语句,就会停止执行并返回结果 可以理解为 return 语句代表着函数的结束,return语句后面的语句不会被执行 如果未在函数中指定return,那这个函数的返回值为None 全局变量与局部变量 name = "第一个名字" def my_print(): name = "第二个名字" print(name) my_print() print(name) 执行结果: 第二个名字 第一个名字 为什么在函数内部改了name的值后, 在函数内部改变了 ,在外面print的时候却没有改呢? 因为这两个name根本不是一回事 第一个name是全局变量,在函数内的name是局部变量 在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。 全局变量作用域

构造函数与普通函数的区别

匿名 (未验证) 提交于 2019-12-02 23:48:02
声明上对比: 1. 普通的函数声明需要带有返回值和无返回值void这个关键字 2. 构造函数定义的时候,不需要有返回值这一说。 函数名对比 1. 普通的函数,函数名可以遵循标识符的规则,最好有意义函数名 2. 构造函数名必须和当前类名保持一致 作用上对比: 1. 普通函数是为了修饰一个对象的行为时,我们去定义函数 2. 构造函数是为了对象的初始化并且可以给变量赋值 函数重载对比: 1. 普通函数在一个类中可以完成函数的重载 2. 构造函数也可以在一个类完成函数的重载

关于dfs中有返回值和无返回值两种写法的问题

匿名 (未验证) 提交于 2019-12-02 23:47:01
我之前写dfs,都是使用一个全局变量,然后在递归边界去修改这个全局变量,这很好理解。但是有返回值的dfs怎么写呢? 这个问题我一直没有去解决,而是一直用的全局变量的方法,而其实有返回值的写法也很简单。 比如下面的代码。 s表示起点,e表示终点,我们每次只能前进一格或者两格,求我们到达终点有多少种方法。有返回值的也很简单,存储好不同分支的结果,相加直接返回即可。这里还是要记住递归的关键点,边界条件,和只思考本层的递归式。如果再思考下一层如何运行的,很容易被绕进去。 def routenum(s, e): if s==e: return 1 elif s>e: return 0 return routenum(s+1, e)+routenum(s+2,e)

重载(overload)与重写(override)的区别

匿名 (未验证) 提交于 2019-12-02 23:47:01
overload(重载):在同一个类中,方法名相同,参数列表不相同。与返回值类型无关。 override(重写):存在同一个类中,或者父子接口中,方法名相同个,参数列表相同。遵循“两同两小一大”。   两同 :         方法名相同,参数类型相同(即方法签名相同)   两小 :       引用类型:子类返回类型小于等于父类方法返回类型          一大 overload的方法可以改变返回值类型,因为它与返回值类型无关

分布式事务框架.NetCore CAP总结

删除回忆录丶 提交于 2019-12-02 23:43:56
来自CAP原作者yang-xiaodong的原理图: 本文撰写者:cmliu,部分内容引用自官方文档,部分内容待更新# .NetCore CAP # 1,简介 CAP 是一个遵循 .NET Standard 标准库的C#库,用来处理分布式事务以及提供EventBus的功能,她具有轻量级,高性能,易使用等特点。 目前 CAP 使用的是 .NET Standard 1.6 的标准进行开发,目前最新预览版本已经支持 .NET Standard 2.0 ## CAP 的应用场景主要有以下两个: ### 分布式事务中的最终一致性(异步确保)的方案。 >分布式事务是在分布式系统中不可避免的一个硬性需求,CAP 没有采用两阶段提交(2PC)这种事务机制 >而是采用的 本地消息表+MQ 这种经典的实现方式,这种方式又叫做 异步确保。 ### 具有高可用性的 EventBus(事件总线)。 >CAP 实现了 EventBus 中的发布/订阅,它具有 EventBus 的所有功能。 >也就是说你可以像使用 EventBus 一样来使用 CAP,另外 CAP 的 EventBus 是具有高可用性的, CAP 借助于本地消息表来对 EventBus 中的消息进行了持久化 >这样可以保证 EventBus 发出的消息是可靠的,当消息队列出现宕机或者连接失败的情况时,消息也不会丢失 #####

.NET 委托(Delegate、Action、Func)

匿名 (未验证) 提交于 2019-12-02 23:43:01
Delegate protected delegate int ClassDelegate(int x, int y);//定义委托类型及参数 static void Main(string[] args) { ClassDelegate dele = new ClassDelegate(Add);//实例化一个委托 Console.WriteLine(dele(1, 2));//调用委托 Console.ReadKey(); } static int Add(int a, int b) { return a + b; } Action,可以传入参数,没有返回值的委托 方法1,调用方法      static void Main(string[] args) { Action<int, int> ac = new Action<int, int>(ShowAddResult);//实例化一个委托 ac(1, 2);//调用委托 Console.ReadKey(); } static void ShowAddResult(int a, int b) { Console.WriteLine(a + b); } 方法2,使用lambda表达式 static void Main(string[] args) { Action<int, int> ac = ((p, q) =>

匿名对象

匿名 (未验证) 提交于 2019-12-02 23:43:01
概念 创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。虽然是创建对象的简化写法,但是应用场景非常有限。 匿名对象 : 没有变量名的对象。 格式: new 类名(参数列表); 应用场景 创建匿名对象直接调用方法,没有变量名,简化书写。 匿名对象可以作为方法的参数和返回值 作为参数: 作为返回值:

js数组常用方法

匿名 (未验证) 提交于 2019-12-02 23:43:01
js数组常用方法 js数组有如下常用方法: (1)unshift()在数组的最前面添加内容,返回值为数组的长度 (2)shift()删除数组中的第一个元素,返回值为删除元素 (3)push()在数组的末尾添加元素,返回值为数组的chang (4)pop()删除数组的最后一个元素,返回值为删除的元素 (5)concat()把两个数组连接起来 (6)reverse()将数组内容反序 (7)splice(start,num,val1,val2,val3,...)从start开始, 删除num项,并添加val1,val2,val3...返回值为删除的项 (8)slice(start,end)从start项开始,到第end+1项结束,返回值为start到end-1项组成的新数组 (9)sort()对数组元素进行排序 (但为一位一位的排 不是整体!!如:23,3;23就在3的前面) (10).isArray()判断是否为数组,返回值为boolean (11).toString()转化为字符串 (12).join()把数组中的元素放到一个字符串中,元素通过指定的分隔符进行分割,默认为逗号 具体例子如下:我们统一用var let=arr[1,2,3,4,5] (1)arr.unshift(6,7) console.log(arr) //[6,7,1,2,3,4,5] 7 (2)arr.shift(

return与finally到底谁先执行?

匿名 (未验证) 提交于 2019-12-02 23:42:01
版权声明:转载请附上本文连接地址 https://blog.csdn.net/weixin_44018338/article/details/91481544 我们经常会使用try/catch/finally语句块。当然,return关键字使用也是很平常的事,但是不知道大家有没有注意个这样一个问题。当在try语句块里面使用return语句,在finally里面去修改return所要返回的内容会出现什么情况。首先,我们知道return是结束方法的标志,一旦方法执行到return语句就将返回不再往下执行。其次,我们也知道,finally里面的语句是无论方法怎样执行,最后都要执行finally里面的语句。那么究竟是先执行return还是finally呢?下面通过两个小实验来解决这个问题。 首先看第一个例子: public class TestTryCatch { } 输出结果:10 Ok很简单的一个例子,创建了一个方法fun,在方法里使用try/catch语句,方法要求返回值类型为int型。在try里面放回i,这个时候是10,但是在finally里面将i值修改为20。我们看到结果是10,好像是return先执行。那么接下来再看另一个例子: public class TestTryCatch { } 输出结果:HelloWordFinally 看结果似乎有点出乎意料了

JSP-JSP监听器

匿名 (未验证) 提交于 2019-12-02 23:42:01
版权声明:【北京Java青年】:456588754 https://blog.csdn.net/Amen_Wu/article/details/53510836 一、 //在web.xml中配置listener <listener> <listener-class>cn.news.lisener.UserLisener</listener-class> </listener> 二、在com.wu.listener包下写一个UserListener类 HttpSessionBindingListener接口 valueBound(HttpSessionBindingEvent event) 当对象被添加到session时,由容器调用该方法来通知对象,无返回值 valueUnbound(HttpSessionBindingEvent event) 当对象从session中清除时,由容器调用该方法通知对象,无返回值 public class UserListener implements HttpSessionBindingListener { //session生效 public void valueBound(HttpSessionBindingEvent arg0) { Statistics.USER_ONLINE_STATISTICS++; } public void