a=3 def test07(): global a a=20 b=4 print(b*10) print(a) test07() print(a)
请问老师a现在是属于全局变量还是属于局部变量
老师我在用普通循环建立字典推导式的时候i是依次遍历会打印出重复的值,请问怎么把这些重复的内容去掉呢?
代码区: my_text = 'i love you ,i love sxt ,i love gaoqi ,i love tom' char_count = {c:my_text.count(c) for c in my_text} print(char_count) for i in my_text: str_count = {i:my_text.count(i)} print(str_count)
运行图:
老师 请问这三个id都是相同的,是因为元组属于不可变的,a【2】的值即便有变动也不影响全局的id,还是只要数组里面有值的变化,id也可能随之变化呢
老师为什么这里在函数中不需要先声明a是全局变量,就可以直接打印输出a了,而不会报错?
class Employee: id = 1000 def __init__(self,name,salary): self.name = name self.__salary = salary Employee.id += 1 def __add__(self, other): if isinstance(other,Employee): return "薪资和为{0}+{1}={2}".format(self.__salary,other.__salary,(self.__salary+other.__salary)) else: return "不是同类对象,无法相加!" @property def salary(self): return self.__salary @salary.setter#set方法修改私有属性的薪资 def salary(self,salary): if 1000< salary <50000: self.__salary = salary else: print("录入错误,薪资在1000-50000这个范围!") emp1 = Employee("高淇",30000) print(emp1.id) emp2 = Employee("高希希",20000) print(emp2.id) print(emp1.id)
运行截图:
提问:emp1.id在第二次打印的时候由1001变成了1002,我想emp1.id保持原来的id1001,如何解决这种问题?
老师,请问一下,为什么用clear()清空整个集合之后输出的是set(),而不是{}呢?
请问老师,重写这样写不是多此一举吗?那重写的意义在什么地方?
我按照以下代码可以正常操作,画出同心圆,但是提示libpng warning: iCCP: cHRM chunk does not match sRGB,百度了一下没找到答案,请问是什么问题?
老师 图中箭头运行程序后如何取消掉啊?? 有函数没
请问老师,这集中高老师所说的get方法和set方法,get和set是特定函数吗,还有是有其他什么讲法。其实不用get和set一样可以定义方法的。
请问为什么我的运行错误?我检查了很多遍还是不行。
1、单例模式代码:
class Single: __obj=None __count=0 __init_sg=True def __new__(cls, *args, **kwargs): if cls.__obj==None: cls.__obj=object.__new__(cls) cls.__count+=1 print(cls.__count) print(object.__new__(cls)) return cls.__obj def __init__(self,name): if Single.__init_sg==True: print("初始化...") self.name = name Single.__init_sg=False a1=Single("aa") b1=Single("bb") print(a1) print(b1) print(a1.name) print(b1.name)
2、运行结果:
3、提问:
(1)从结果可以看出来,__new__方法每建立一次就会被调用,但是为什么每次执行objet.__new__(cls)生成的对象是同一个?还是说objet.__new__(cls)只调用了一次,第二次只是使用之前的对象,那a1与b1只是都获取到了这个对象的地址吗?b1实际上并没有建立是吗?
(2)在a1=Single("aa")与b1=Single("bb")生成的对象为什么与最后打印的时候的对象地址不同?
4、感想:
根据结果来看,单例模式只建立了一个对象,且只是第一个,希望有内存图解释一下,疑问还是很多
为什么我这个会将整个一个累加过程展示出来了?
num1 = 0 sum_all = 0 while num1<=100: sum_all = sum_all + num1 num1 += 1 print("1-100所有数字的累加和:",sum_all)
老师id(a[1])被删除之后,后面得值拷贝过来得是值得value,而非原先作为a[2]得地址么
重写__str__()方法的意义是什么?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637