W为什么salary是负值,没有调用salary方法进行if判断?和老师写的一样的
代码
#测试设计模式_单例模式实现 class MySingleton: __obj = None #类属性 __init_flag = True def __new__(cls, *args, **kwargs): if cls.__obj == None: cls.__obj = object.__new__(cls) return cls.__obj def __init__(self,name): if MySingleton.__init_flag: print("我学废了") self.name = name MySingleton.__init_flag = False a = MySingleton("aa") b = MySingleton("bb") print(a) print(b)
图:
老师,我代码照着视频中敲得,运行结果为什么不一样,找不出来哪里不合适。最后一行多了个None
安装好之后打开cdm输入python,为什么没有弹出老师说的那些信息
老师你好啊,想请问为什么使用“append”是后面的()只能添加一组数字,如果想要一次过添加好几组数字就无法使用append了?
例子:
a = [55,87,94,83,43,25]
>>> a.append(79,34)
num = 0 sum_all = 0 #1-100 所有数的累加和 sum_even = 0 #1-100 偶数的累加和 sum_odd = 0 #1-100 奇数的累加和 while num<=100: sum_all += num if num%2==0:sum_even += num else:sum_odd += num num += 1 #迭代,改发条件表达式,使循环趋于结束 print("1-100 所有数的累加和",sum_all) print("1-100 偶数癿累加和",sum_even) print("1-100 奇数癿累加和",sum_odd) 老师这个代码里的是不是先执行while循环结构里的语句块,再执行if条件式里的语句块?
老师,这边的get和set 是不是只是起到了,见代码知其意的效果,如果换成其他的名字也是没有问题的?当然下面print的时候,也是跟上面定义的方法名一样
如果a=[10,20]
b=a
是属于 浅拷贝,还是深拷贝呢
老师,跟视频一样的代码,我这里为什么会报错
老师:
结尾的那段代码,没有delp1为啥p1也被销毁了?
class MySingleton: __obj=None __init_flag=True def __new__(cls, *args, **kwargs): if cls.__obj==None: cls.__obj=object.__new__(cls) return cls.__obj def __init__(self,name): if MySingleton.__init_flag: print("........") self.name=name MySingleton.__init_flag=False a=MySingleton("aa") b=MySingleton("bb") print(a) print(b)
老师 单例模式中 object.__new__(cls) 这句代码有点不明白 这是什么意思
老师,记得将构造函数的时候1和2需要是一样的名字,3和4也是一样的名字,但是我试验5和6不一样,为什么也可以打印
#测试浅拷贝和深拷贝 import copy class MobilePhone: def __init__(self,cpu,screen): self.cpu=cpu self.screen=screen class Cpu: def calulate(self): print("算你个12345") print("cpu对象",self) class Screen: def show(self): print("显示一个好看的画面") print("screen:",self) #测试变量值 c1=Cpu() c2=c1 print(c1) print(c2) #测试浅复制 s1=Screen m1=MobilePhone(c1,s1) m2=copy.copy(m1) m1.cpu.calulate() print("*************************") print(m1.cpu) #print(m1,m1.cpu,m1.screen) #print(m2,m2.cpu,m2.screen)
老师 这个代码我还是不明白为什么给手机类传参传的是cpu类和screen类 第二个问题m1.cpu是不是就是指c1这个实例对象,所以m1.cpu.calulate就相当于c1.calulate 这样理解对吗
class Person: def __init__(self,name): self.name=name def __add__(self, other): if isinstance(other,Person): return "{0}-{1}".format(self.name,other.name) else: return "不是同类对象,不能相加" p1=Person("姬昊余") p2=Person("吕倩倩") x=p1+p2 print(x)
老师 对于这个判断other是否属于Person类这里 我的理解是 p2就代表other 但是p2跟p1都是Person的实例对象 所以这里执行了 if语句 如果p2不是person的实例对象 那么执行else语句 所以这里的判断只是看other是不是person的实例对象 这样的理解对吗
还有一个问题 other.name这里有点不明白 这里是不是之前讲的 所有的实例属性 在实例方法中都是共享的 所以这里的other可以使用这个name属性
class Man: def eat(self): print("吕倩倩的各种情绪") class GaoXing(Man): def eat(self): print("开心就像猫咪一样,好可爱啊") class ShengQi(Man): def eat(self): print("生气就像头牛一样,你好牛啊") class ChiFan(Man): def eat(self): print("饿了就像只猪一样,你好胖啊") def manEat(m): if isinstance(m,Man): m.eat() else: print("可可爱爱没有脑袋!") manEat(GaoXing())
老师 这个代码为什么传1 就不会报错(传入其他数字也不会报错) 而是执行else里的语句 但是传入其他字符串就会报错 没有定义
想问一下作业第一题,用python表达数学式,
表达式里面的字母,需要初始化赋值吗?
如果赋值,就是简单的运算,而不是表达数学式。
如果不赋值,就不能调用。
希望老师解答。
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637