老师好,
def outer(): b=10 def inner(): print('inner:',b) nonlocal b b=30 print('inner2:',b) inner() outer()
这里提示nonlocal一定要放在出现b之前的位置,这里我不理解的是:
执行第四行代码时,没有对b进行修改,因此可以直接提取上一层函数的值(在没有5,6行代码时候,不需要nonlocal也可以执行程序)
只有第六行才开始对b进行修改,因此需要提前声明nonlocal。因为代码是一行一行的执行的,因此我想的是:只要在对b修改前声明nonlocal就可以。所以我不理解,为什么在内部函数进行修改,就一定在最前面声明nonlocal,谢谢~
老师好,关于浅拷贝和id值我没有很明白:
在这种浅拷贝时候,a和b的地址是不同的。但是按照我的理解,浅拷贝是a和b同时指向一个对象,因此地址应该是相同?
另外:
在这种浅拷贝实例里,为什么m在修改地址前,又和a的值相同了呢?
这中浅拷贝,和上一个实例中的浅拷贝,有什么不同呢?
请问老师,视频中讲的这里 为什么method使用post方法结果就是内部服务器错误,而使用get方法就访问到action指定的页面中去了。
老师我代码控制台运行结果是插入失败,为什么我mysql里面可以看到该数据(运行之前是没有的)
老师为什么我利用bin(hash())输出的结果前面有负号,代码如下:
a ={} a['age'] = 20 bin(hash('age'))
运行结果如下:
老师我用的是springboot2.0的 配置这个开启重试机制没有效果
只有try catch 有效果
问题描述:使用同步方法和同步方法块没有锁成功,猜测原因是因为我的循环判断使用的是要锁住的对象,但还是感觉不太清楚具体是什么原因,希望老师可以帮我解答一下。
以下是我的代码:
public class TestTicket { public static void main(String[] args){ //创建三个线程作为三个卖票窗口 Ticket ticket = new Ticket(); Thread t1 = new Thread(ticket,"张三"); Thread t2 = new Thread(ticket,"李四"); Thread t3 = new Thread(ticket,"王五"); t1.start(); t2.start(); t3.start(); } } class Ticket implements Runnable { private static int ticket = 20; @Override public void run() { while (ticket>0){ sale(); try { Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } } } public synchronized void sale(){ System.out.println(Thread.currentThread().getName() + "在卖第" + (ticket--) + "张票"); } }
运行结果:
/* 张三在卖第20张票 王五在卖第19张票 李四在卖第18张票 张三在卖第17张票 王五在卖第16张票 李四在卖第15张票 王五在卖第14张票 张三在卖第13张票 李四在卖第12张票 李四在卖第11张票 张三在卖第10张票 王五在卖第9张票 张三在卖第8张票 王五在卖第7张票 李四在卖第6张票 王五在卖第5张票 张三在卖第4张票 李四在卖第3张票 王五在卖第2张票 张三在卖第1张票 李四在卖第0张票 */
老师您好,请问用IDEA生成的equals()&hashCode方法和用Eclipse生成的为什么不一样呢、?
//IDEA生成方法: public class Student { String name; int age; @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Student student = (Student) o; return age == student.age && name.equals(student.name); } @Override public int hashCode() { return Objects.hash(name, age); } } //Eclipse生成方法: public class Student { String name; int age; @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Student other = (Student) obj; if (age != other.age) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } }
9adbffc5d90fb6fc59652905e206c40.png
e8085b26a0703c01c7d8c5da0c9c267.png
我就是一直按着视频敲代码不知道出什么问题了
老师,StringBuilder追加字符序列,是在已经创建好的对象空间后面追加,还是开辟新的对象空间复制原来的字符串再追加?
老师,请问为什么这里使用root也同样可以运行
老师,__call__和__str__,感觉有些类似,具体区别在哪?
老师你好,请问这里的config是什么意思呢?
我的工具安装完也是不能汉化,且抓包显示无数据。
老师老师 请问一下,我写的这个为什么只能读取输入的成绩,而不能再次输入评语,输入成绩回车后不能再次输入评语。
结果图为:
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637