python 第3天
class Hotdog:
def __init__(self): #初始化对象
self.cooked_level = 0
self.cooked_string ="Raw"
self.condiments = [] #空数组
def __str__(self): #print(对象)
msg = "hot dog"
if len (self.condiments) > 0 :
msg = msg + " with"
for i in self.condiments:
msg = msg +" "+ i + ","
msg = msg.strip(",")
msg = self.cooked_string + " "+msg + "."+str(self.cooked_level)
return msg
def cook (self,time):
self.cooked_level = self.cooked_level + time
if self.cooked_level > 8:
self.cooked_string = "Charcoal"
elif self.cooked_level > 5:
self.cooked_string = "Well_down"
elif self.cooked_level >=3:
self.cooked_string = "Medium"
else:
self.cooked_string = "Raw"
def addCondiment(self,condiments):
self.condiments.append(condiments)
myDog = Hotdog()
print (myDog)
print ("Cooking hot dog for 4 minutes...")
myDog.cook(4)
print (myDog)
print ("Cooking hot dog for 3 minutes...")
myDog.cook(3)
print (myDog)
print ("Cooking hot dog for 10 minutes...")
myDog.cook(10)
myDog.cooked_level=3 # 这些对象的属性都可以更改,不用通过方法,python 没有提供隐藏数据的方法,不过可以自己搞定。
print (myDog)
print ("Now I'm going to add some stuff on my hot dog")
myDog.addCondiment("ketchup")
myDog.addCondiment("mustard")
print (myDog)
设置私有变量和私有方法可以用__开头
class Person:
def __init__(self):
self.__name = "jixiang"
self.age = 22
def __get_name(self):
return self.__name
def get_name(self):
return self.__name
def get_age(self):
return self.age
def change_name(self):
self.__name = "malong"
return self.__name
def change_name1(self):
self.__name = "jilong" #可以清楚的看到无论是私有属性还是私有方法在类内都可以使用。
newname=self.__get_name()
return newname
person = Person()
print (person.get_age())
#print (person.__get_name()) #无论是私有变量还是私有方法都无法访问。
#print (person.__name)
person.__name ="lilong" #这里虽然没有报错,但是你看下面,打印出来依然没有改变
print (person.get_name())
person.change_name()
print (person.get_name())
person.change_name1()
print (person.get_name())
下面进入多态 ,
封装继承多态是面向对象的重要内容。
多态
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341