我将介绍Python中关于类多态性的一节,特别是封装和数据隐藏
这种封装的示例是:
class Car:
__maxspeed = 0
__name = ""
def __init__(self):
self.__maxspeed = 200
self.__name = "Corolla"
def drive(self):
print("Max speed is: " + str(self.__maxspeed))
def setMaxSpeed(self,speed):
self.__maxspeed = speed
car_a = Car()
car_a.drive()
car_a.setMaxSpeed(320)
car_a.drive()
行car_a.drive()
将我们引向print("Max speed is: " + str(self.__maxspeed))
。这个特定的self__maxspeed
的值来自哪里?为什么
从输出中,我看到它是200。而car_a.setMaxSpeed(320)
的输出是320。所以这里的问题与320相同。最后,__maxspeed = 0
和__nane = ""
的函数是什么
对不起,问得太多了。我是Python新手,这些例子让我很困惑。我非常感谢所有的帮助和时间
它来自
__init__
方法,在调用Car()
时调用该方法:任何时候你创建一个
Car
它的maxspeed
值都是200,直到你将它设置为其他值为止下面是
setMaxSpeed
函数:如您所见,它接受您传递的任何内容作为参数(320),并为其设置
self.__maxspeed
。没什么神秘的。现在Car
的maxspeed
值为320,直到您将其设置为其他值它们没有任何功能。也就是说,您的代码从未将它们用于任何用途,因此它们的出现可能是一个错误,或者您有其他代码对它们进行处理,但根据您提供的代码,它们是无用的,您可以删除它们而不会产生不良影响
每当创建任何对象时,都会调用
__init__()
创建对象后,会自动调用
__init__()
在这种情况下,
__init__()
正在初始化__maxspeed
,值200。然后,使用drive()
函数打印__maxspeed
(即200)的值稍后,您使用320作为值调用了
setMaxSpeed()
。在这个函数中,它将320赋值给对象的__maxspeed
变量,该变量的初始值为200现在,您再次调用了
drive()
函数来打印__maxspeed
的值,该值现在是320。所以,320被打印出来相关问题 更多 >
编程相关推荐