老师,这里终止为什么是0呢,还有步长是-1也不太懂
老师您好,我在用jupyter记笔记时,出现一个问题,就是del在各IDE上的运行结果不一样,就有点搞不懂他们都是什么意思了,您看看我下面理解的都对吗。
原码
#构造函数 class Person: def __del__(self): #一般不用写,系统自带 print("销毁对象:{0}".format(self)) p1 = Person() p2 = Person() del p2 print("程序结束")
pycharm
这个就是说p2用del删除,然后程序走完,把p1也释放了,程序结束。
jupyter notebook
第一运行
第二次运行
这个是不是就是第一次运行结束之后他没有打印出p1的删除,但他执行了,在第二次运行时,他把第一次运行,p1删除的结果打印出来了。
3.IDLE
ID
IDLE运行的结果始终是这样的,那其实他也是在运行结束后,把p1删了,只是他不会打印出来。
代码:
问题:
老师好,这个是我自己开发的一个猫狗大战的小程序,在这个程序中我有一个小问题想问一下老师,在这里我使用的是继承的方法写的程序,首先我定义了一个War父类,然后让Dog类和Cat类继承这个父类,我的问题就是在我用注释标注#*******(1)标注出来的那个地方,我在War类中定义了一个leftvalue的属性然后用lifevalue这个值进行初始化,然后Dog类和Cat类继承了War类,那么不是应该也继承了War类的属性吗,但是在#*******(2)和#******(3)处提示Dog和Cat中没有这个属性,而且我用dir(War)也查看了一下,发现War中的确没有leftvalue这个属性,我想问一下老师这个是什么原因
老师请问一下如果我定义了一个父类和一个子类,那么这个子类继承的是父类的类属性还是实例属性呢?如果我对父类中的属性做了初始化,那么此时子类继承的仅仅是父类的属性名还是父类的属性初始化值也能继承过来?
老师,列表的那个作业,我用视频里的方法,先创建字典,再把它们放列表里:
两次都提示我没有定义模块,那应该怎么写呢?
老师,最后三十行,变量为ribenren运行起来不应该打印请选择正确人种吗?为什么会报错?
''' 使用工厂模式、单例模式实现如下需求: (1) 电脑工厂类 ComputerFactory 用于生产电脑 Computer。工厂类使用单例模式,也就是说只能有一个工厂对象。 (2) 工厂类中可以生产各种品牌的电脑:联想、华硕、神舟 (3) 各种品牌的电脑使用继承实现: (4) 父类是 Computer 类,定义了 calculate 方法 (5) 各品牌电脑类需要重写父类的 calculate ''' class ComputerFactory: __obj = None __init_flag = True def create_computer(self,brand): if brand == "联想": return Lenovo() elif brand == "华硕": return Asus() elif brand == "神舟": return Hasee() else: return "未知品牌,无法创建" def __new__(cls, *args, **kwargs): if cls.__obj == None: #当前的类对象cls下的类属性是否为空 cls.__obj = object.__new__(cls) return cls.__obj def __init__(self): if ComputerFactory.__init_flag: #等于if MySingleton.__init_flag == True print("init ComputerFactory...") ComputerFactory.__init_flag = False #保证了只调用1次初始化 class Computer: def calculate(self): print("生产电脑啦!") class Lenovo(Computer): #联想 def calculate(self): print("生产联想电脑啦!") class Asus(Computer): #华硕 def calculate(self): print("生产华硕电脑啦!") class Hasee(Computer): #神舟 def calculate(self): print("生产神舟电脑啦!") factory = ComputerFactory() c1 = factory.create_computer("联想") print(c1.calculate()) factory2 = ComputerFactory() c2 = factory2.create_computer("华硕") print(c2.calculate())
老师,请问一下:
1、运行图(如上显示)里的None是哪里来的
2、单例模式这个还是有点不太理解为什么要这么写(如下显示)
老师,用控制输入月薪的那个作业
为什么我只能用salary=input("请输入月薪")不报错
我用monthly pay=input("请输入月薪")就提示
那我该怎么用我自己想要的名字,定义月薪呢
下载了 python 但是没有勾选项怎么办
x1 = [(-)(-+width*num)] y1 = [(-)(--width*num)]
老师,你好,我想问一下这两行代码问么解释,不太能理解。这里的400又是怎么来的
t.goto(x1[0][0],x1[0][1])# t.goto(x1[1][0],x1[1][1])
还有这两行代码也不理解,老师能帮助我理解一下吗
请问老师,在栈帧里生成的新对象,会随着栈帧的消失而消失吗,我的理解是不会消失,当下次调用到生成新对象这个语句时,就不会产生新的对象了,这个老的对象会自动赋值给这次的调用,所以当函数需要返回这个值时,也是把这个对象的id返回出去。老师我的理解对吗。
a = [10,20] print(id(a)) def test01(m): print(id(m)) m.append(30) print(m) print(id(m)) test01(a)
请问老师,m.append(30),我能不能理解为是列表的扩容,那么原先的这个列表地址如果不变的话,那是不是指在生成这个列表对象时,这个地址就非常的大,足够能装下后面新增的对象,但不是说,计算机会自动优化吗,那地址肯定是很小的,或者说,我是不是对地址的概念理解有偏差,地址是指内存块吗?
运行结果:
老师请问一下,在这里我定义了一个电脑工厂类ComputerFactory,使用的是单例模式,那么此时应该只能有一个工厂对象,在后面我用e=ComputerFactory()和e2=ComputerFactory()建立了一个对象e和另外一个对象e2,根据单例模式,这里的e和e2应该是同一个对象,但是我打印了这两个对象的地址发现这两个对象的地址不同,一个地址是1977310502816,另外一个地址是140724579081432,地址不同说明这两个对象不是同一个对象,老师请问一下这是因为什么原因?是因为我的代码有问题吗?
老师,isinstnce(m,Man) 中的Man是什么意思,怎么理解
#测试方法的动态性 class Person: def work(self): print("努力工作") def play_game(self, name): print("{0}在玩游戏".format(name)) def marry(s): print("挣钱娶媳妇") Person.play = play_game p = Person() p.work() p.play('张三') Person.work = marry p.work()
类方法work() self参数是默认的吗,不是构造函数__init__才有吗
试过play_name带一个参数,但是运行p.play('张三')提示给了两个参数,这是什么原因
试过marry()不带参数,叶辉提示参数错误
类方法都自带一个self参数吗?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637