python面向对象中的继承有什么特点,python类的继承 通俗解释
面向过程和面向对象编程(OOP)的基本概念都是面向过程的:-重点是怎么做?1.逐步实现自始至终完成某项要求的所有步骤。2.根据开发需求,将一些功能独立的代码打包成一个又一个功能。3.最后,完成的代码按顺序调用不同的函数。1.注重步骤和流程,但不注重职责分工。2.如果需求很复杂,代码会变得非常复杂。3.没有固定的套路,开发复杂的项目是非常困难的。面向对象:——谁来?与函数相比,面向对象是一种更大的封装,根据职责将多个方法封装在一个对象中。1.在完成某个需求之前,先确定责任——要做的事情(方法)。2.根据职责确定不同的对象,在对象内部封装不同的方法(多个方法)。3.最后,完成代码意味着顺序地让不同的对象调用不同的方法。1.注意对象和责任,不同的对象承担不同的责任。2.更适合复杂需求的变化,是专门为复杂项目开发提供的固定套路。3.在面向过程的基础上学习一些面向对象的语法是很有必要的。面向对象有两个核心概念类:它是一组具有相同特征或行为的事物的统称。类是抽象的,对象不能直接使用。类创造的具体存在于发展中。应该先有类,再有对象类。对象类和对象之间的关系类是一个模板。该对象是从该模板创建的。只需要有一个类,对象可以有多个类(一张图纸可以做多架飞机):属性(信息)和方法(可以完成的动作)1。类名2。属性3。方法一。类名。这些东西的名字,符合大驼峰命名法。大驼峰命名法:1。将每个单词的第一个字母大写。2.单词之间没有下划线。2.这个类创建的对象有什么样的特性?3.方法这个类创建的对象有什么样的行为?名词提炼法分析整个业务流程。出现的名词通常是找到的类属性和方法的确定。描述对象的特征。通常可以定义为属性对象所具有的行为(动词),通常可以定义为方法提示:设计类的时候不需要考虑练习1:需求:可靠的西装18岁,身高1.75,每天早上跑步,会吃饭。CBD By 17岁1.65 cbdby不跑,By cbdby喜欢吃personnameageheightlun()eat()练习2:一只叫大黄的黄狗看到陌生人想哭看到家人摇尾巴dognamecolorshour()shake() #小猫喜欢吃鱼小猫想喝水# cat eat drink class cat:def eat(self):print( % s爱吃鱼 % self。name) def drink (self): print(小猫需要水)# create cat object # Tom=cat()# Tom . name= Tom # print(Tom)# addr=id(Tom)# print(addr)# % x:打印格式为十六进制# print( % x %(addr))# % d:打印格式为十进制# print( % d %(addr))# Tom . drink()# Tom . eat()创建对象时初始化方法,1。在内存中为对象分配空间-创建对象,2。调用initialization方法来设置object-initialize方法的属性的初始化值(-init-):#初始化方法的参数。创建类时,必须给出足够的def __init__(self,Name): print(初始化方法)self.name=name#使用类创建对象时,初始化方法cat=cat (kdddn) print (cat。_ _ init _ _)dog=cat( dog )print(dog。姓名)
_ _ str _ _ _ _ del _ _ class cat:def _ _ init _ _(self,name):self . name=name print( % s coming % (self . name))#对象名将不返回内存地址,更改字符串def __str__(self): #必须放回一个字符串返回 I am %s% self.name #方法def _ _ del _ _ (self): print ((%s离开 %(self。name)))# Tom=cat( Tom )Print(Tom)Del Tom Print( * * 40)小练习 Demand 1。房子有户型,总面积,家具清单。新房子没有任何家具。2.家具有名称和占地面积,其中床:占地4平方米。衣柜:占地2平方米。餐具:占地1.5平方米。3.把以上三件家具加到房子里。4.要导出:户型,总面积,剩余面积,家具名称列表 classhouse: def _ _ init _ _ (self,housetype,House):self . House type=housetype self . area=housareaself . fire _ area=housareaself . fitting=[]def _ _ str _ _(self):return 户型:%s \ N总面积:% s平米\ N剩余面积:%s m2 \n家具:% s% (self。房子类型,自己。区域,自我。fire _ area,,。加入(自我。fitting)) def add _ fitting (self,fitting name):if fitting name。区域自我。火区:自己。试衣。附加(配件名称。名字)自我。fire _ area-=配件名称。面积其他:打印( %s占地%s平方米太大,房子剩余面积% s平方米太小 %(装修名称。名称,配件名称。区域,自我。fire _ area))类拟合:def _ _ init _ _ (self,name,Area): self。name=name self . area=area def _ _ str _ _(self):return“%s占用% s平方米”% (self。名字,自我。面积)床=试衣(框架床,4)局=试衣(折叠衣柜,2)餐具=试衣(餐桌,1.5) #打印(床)#打印(局)#打印(餐具)教室_房子=房子(两室一厅,100)教室_房子。添加_装修(床)教室_房屋
python中类的继承
继承:实现代码的重用,同一个代码不需要重复写 #来定义父类class Animal:def eat(self):print( eat ~ ~ ~ )def drink(self):print( drink )def run(self):print( run )def sleep(self):print( sleep )子类继承父类class cat(Animal):def call(self):print(喵~) #创建一个cat对象,可以直接调用被继承的父类的方法属性,也有自己的方法。fen tiao=Cat()fen tiao . eat()fen tiao . drink()fen tiao . run()fen tiao . sleep()
class Animal:def eat(self):print( eat ~ ~ ~ )def drink(self):print( drink ) 继承是可传递的 class cat(Animal):def call(self):print(喵~ )class Tom(cat):def speak(self):print(我会说日语)kt=Tom()kt.speak()#子类可以继承父类kt.call()#继承是可传递的,包括kt.eat()kt.drink()的所有属性和方法
当父类方法实现不能满足子类的要求时。您可以重写该方法。1.重写父类的方法。2.扩展父类的方法 class Animal:def eat(self):print( eat ~ ~ ~ )def drink(self):print( drink )def run(self):print( run )def sleep(self):print( sleeping )class cat(Animal):def call(self): print(我会说日语)def call(self):print(这是我写的)kt=Tom()如果在子类中,父类的方法#被覆盖,只
子类重写方法并调用父类的方法 class Tom(cat):def speak(self):print(我会说日语)def call(self): # 1。对于子类的具体要求,写代码print(子类的方法)# 2。调用方法# cat。
1.一个子类可以同时继承多个父类。2.如果方法或属性名称相同,方法或属性 Class A:DEF test(self):print( A-test method )DEF DEMO(self):print( A-DEMO method )Class B:DEF test(self):print( B-DEMO method )DEF DEMO(self):print( B-DEMO method )#继承B和A,但默认B的方法生效Class C (b,a): passc=c () c.test () c.demo()
新类和旧(经典)类:object是Python为所有对象提供的基类,提供了一些内置的属性和方法。可以使用dir函数查看新类:基于对象的类,推荐经典类:不基于对象的类,python3中定义的类。不推荐x。如果没有指定父类,默认情况下Object将被用作基类——python 3 . x中定义的所有类都是新类。在python2.x中定义类时,如果没有指定父类,那么用object作为基类编写的代码可以同时在python2.x和Python 3.x中运行。以后定义类时,如果没有父类,建议从Object class cat:pass sprint(dir(cat))继承
‘‘多态性(在封装和继承的前提下),不同的子类对象调用同一个方法,导致不同的执行结果。人类工作(自我)程序员设计师 class dog(object):def _ _ init _ _(self,Name): self。name=name def game(self):print( % s弹跳~% (self。name))class gaofi(Dog):#父类方法不能满足子类方法,重写游戏方法def game(self):print( % s plays with TLD HLB ~ %(self . name))class person(object):def _ _ init _ _(self,name):self . name=name def game _ with _ Dog(self,Dog):print( % s plays with % s ~ %(self。名字,狗。名字))狗。游戏()# 1。创建一个狗对象王采=高菲( zgdxmg)# 2。创建一个person对象xiaoming=Person(靠谱服)。
一切都是对象类是一个特殊的对象-类对象。程序运行时,内存中只有一个类对象(创建实例对象的模板),通过它可以创建许多对象实例。除了封装实例的属性和方法,类对象也可以有自己的属性和方法。1.类别属性。2.类方法可以通过类名直接访问类的属性。类属性:为类对象定义的属性通常用于记录与该类相关的特征。类属性不会用于记录对象的特征。定义一个工具类,每个工具都有自己的名字。你需要知道如何使用这个类。已经创建了多少工具对象 class tool(object):# 1。使用赋值语句定义类属性并记录所有工具的数量count=0 def __init__(self,Name): self.name=name # let类属性1 Tool.count=1#创建工具对象tool1=工具(斧子)# tool2=工具(锤子)# tool3=工具(螺丝刀)#输出工具对象的总数#类名。要打印的属性名(Tool.count)
为类对象定义了类方法类属性。Class属性可以在class关键字下定义。类属性用于记录该类的相关特征。为类对象定义了类方法。您可以直接访问类属性或在类方法中调用其他类方法。类玩具(对象):# 1。使用赋值语句定义类属性。Count=0 def __init__(self,Name):self . Name=Name # Let class attribute 1 Toy . count=1 @ classmethoddef show _ Toy _ count(CLS):print(玩具对象数%d %(cls.count))#创建玩具对象toy1=Toy (Lego) toy2=Toy(泰迪熊)
在开发静态方法时,如果需要将方法封装在类中,这个方法不需要访问实例属性或调用实例方法,也不需要访问类属性或调用类方法。这时我们可以把这个方法封装成一个静态方法 class cat(object):@ static method def call():print(喵~) # by class name。调用静态方法cat。
私有属性和私有方法的应用场景和定义方法的应用场景在实际开发中,一个对象的某些属性或方法可能只在对象内部使用,而不想在外部被访问。私有属性是对象不想公开的属性。私有方法是对象不想公开的方法。定义属性或方法时,在属性名或方法名前添加两个下划线。被定义为私有属性或方法“”class women(object):def _ _ init _ _(self,name): self.name=nameself。_ _ age=18 def _ _ sec rte(self):print( % s 的年龄是%d% (self.name,Self。_ _年龄))正经镜=女人(正经镜)印(正经镜。名)#私有财产,外界无法直接访问打印(正经镜像。__age)# private方法,外界无法直接访问# serious mirror.secte()
python中的异常处理
异常:程序运行时,如果python解释器遇到错误,会停止程序的执行,并提示一些错误信息。这是个例外。当我们在开发程序时,很难处理所有的特殊情况。通过异常捕捉,我们可以关注紧急情况,从而确保程序的健壮性和稳定性。在程序开发中,如果某些代码的执行是不确定的(程序语法完全正确),可以添加try来捕捉异常。try:您尝试执行的代码除了错误类型1:对于错误类型1,对应的代码处理除了错误类型2:对于错误类型2,对应的代码处理 try: #无法确定正确执行的代码num=int(input(请输入整数:))print(kdddn)except: print(请输入整数)print(# * 50)
1.提示用户输入一个整数。2.将8除以用户输入的整数并输出 try: #提示用户输入一个整数num=int(input(请输入一个整数:))#将8除以用户输入的整数并输出结果=8/num print(result)Except zerodivisioneerror:print( 0不能是除数)except ValueError: print(输入不是数)except Exception as result: print(未知错误%s% (result))最后:#将执行代码print( ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。