自建网站营销,网站 栏目,企业所得税怎么算公式,seo具体seo怎么优化#面向对象的几个方法#1.静态方法staticmethod#xff0c;不能访问类属性#xff0c;也不能访问实例属性#xff0c;只是类的工具包#2.类方法#xff1a;classmethod#xff0c;在函数属性前加上类方法#xff0c;显示为(cls)代表类#xff0c;类能访问到数据属性和函数属…#面向对象的几个方法#1.静态方法staticmethod不能访问类属性也不能访问实例属性只是类的工具包#2.类方法classmethod在函数属性前加上类方法显示为(cls)代表类类能访问到数据属性和函数属性不能访问至实例属性#3.静态属性property,把函数封装成一个数据属性的形式让外部调用时看不到内部的逻辑特点定义时有self(实例本身)##################################################################################################################组合(拼接)定义一个人的类比如手、头、脚这个属性又可以是通过一个实例化的对象这就是组合#用途1.做关联、2.小的组成大的# class Head:# pass# class Foot:# pass# class Trunk:# pass# class Hand:# pass# class Person:# def __init__(self,id_num,head,foot,trunk,hand):# self.id_num id_num# self.head head()# self.foot foot()# self.trunk trunk()# self.hand hand()# P1 Person.__dict__# print(P1)# F:\Python\PythonLeaning\venv\Scripts\python.exe F:/Python/PythonLeaning/每日学习打卡/Day25.py# {__module__: __main__, __init__: function Person.__init__ at 0x000000000297A6A8,# __dict__: attribute __dict__ of Person objects, __weakref__:# attribute __weakref__ of Person objects, __doc__: None}## Process finished with exit code 0################################################################################################################## class School:# def __init__(self,name,addr):# self.name name# self.addr addr## class Course:# def __init__(self,name,price,period,school):# self.name name# self.price price# self.period period# self.school school# def employ(self):# print(%s 正在empoying%self.name)# s1 School(oldboy,beijing)# s2 School(oldboy,nanjing)# s3 School(oldboy,dongjing)# c1 Course(linux,10,1h,s1)# c2 Course(Python,100,100h,s2)# msg # 1 oldboy beijing# 2 oldboy nanjing# 3 oldboy dongjing# # while True:# print(msg)# menu {# 1:s1,# 2:s2,# 3:s3# }# choice input(选择学校)# school_obj menu[choice]# # choice2 input(选择课程)# name input(课程名 )# price input(课程费用 )# period input(课程周期 )# new_course Course(name, price, period, school_obj)# print(课程【%s】属于【%s】学校 % (new_course.name, new_course.school.name))# 模拟选课################################################################################################################################################################################################################################################################################################################################# 面向对象的三大特性# 1.继承 2.多态 3.封装# 一、什么是类的继承# 类的继承跟现实中的父子、孙子、重孙子、继承关系一样父类又称为基类# python中的类的继承分为单继承和多继承# class ParentClass1:# pass# class ParentClass2:# pass# class SubClass(ParentClass1): #单继承# pass# class SubClass(ParentClass1,ParentClass2): #多继承# pass# 二、子类到底继承了父类的什么属性# 子类调用方法会触发父类的init方法子类继承了父类的所有属性但是子类的方法还是先调用自己的方法找不到自己的方法才会去# 父类去找方法或属性# class robot:# power 100# def __init__(self,name,energy):# self.name name# self.energy energy# def act(self):# print(%s机器人正在消耗能源%self.name)# class robot_arm(robot):# def __init__(self,type):# self.type type# def act1(self):# print(%s型号机器人正在动arm%self.type)# r robot(pandaboy,氢气能源)# r1 robot_arm(ASII)# r1.act1()# print(r1.power)################################################################################################################## F:\Python\PythonLeaning\venv\Scripts\python.exe F:/Python/PythonLeaning/每日学习打卡/Day25.py# ASII型号机器人正在动arm# 100## Process finished with exit code 0################################################################################################################################################################################################################################### 什么时候用继承# 1.当类之间有显著不同并且较小的类是较大的类所需要的组件用组合比较好# 例如描述一个机器人类机器人这个大类是由很多互不相关的小类组成的如机器手臂类、身体类、电池类等# 2.当类之间有很多相同的功能提取这些共同的功能做成基类用继承比较好################################################################################################################## 什么是派生# 当然子类也可以添加自己新的属性或者在自己这里重新定义这些属性不会影响到父类需要注意的是# 一旦重新定义了自己的属性且与父类重名那么调用新增的属性时就以自己为准了。################################################################################################################## 继承同时具有两种含义# 含义一继承基类的方法并且自己的改变或者扩展(代码重用)# 含义二声明某个子类兼容于某基类定义一个借口类子类继承接口类并且实现接口中定义的方法# 实践中继承的第一种含义意义并不是很大甚至是有害的因为它使得子类与基类出现强耦合# 继承的第二种含义非常重要它又叫接口继承# 接口继承实质上是要求做出一个良好的抽象这个抽象规定了一个兼容接口使得外部调用者无需关心具体细节可以一视同仁# 的处理实现特定接口的所有对象——这在程序设计上叫做归一化# 归一化使得高层的外部使用者可以不加区分的处理所有接口兼容的对象集合——就好像linux的泛文件对象概念一样# 所有的东西都可以当做文件处理不必关心它是内存、磁盘、网络还是屏幕(当然对于底层设计者也可以区分出字符设备和块设备)# 然后做出针对性的设计细致到什么程度视需求而定# 一切皆文件是没有意义的归根结底就是全部都是读和写################################################################################################################## 接口继承代表定义一个基类类当中把接口的方法定义一个函数来一个子类就必须实现基类的方法# 接口就是一个函数# import abc# 1.python可以继承多个类java和c只能继承一个类# 2.python如果继承了多个类那么寻找方法的方式有两种分别是深度优先和广度优先# 当类是经典类时多继承情况下会按照深度优先方式查找# 当类时新式类时多继承情况下会按照广度优先方式查找#————————————————————————————————————————————————————————# 继承顺序# class A:# pass# class B(A):# pass# class C(A):# pass# 在子类中继承父类# super().__init__()# 运行super调用super下的方法转载于:https://www.cnblogs.com/pandaboy1123/p/8485838.html