面向对象
面向对象编程就是将事物抽象成为一个对象(模块)这也使得项目看起来不是那么臃肿,后期维护的可读性也更高了。
万物皆可对象
就拿当时我们老师给我第一次讲面向对象的时候讲的例子吧:
把大象放进冰箱需要几步。
打开冰箱门——放入大象——关冰箱门
在这里就可以使用面向对象的思想将大象冰箱事件进行分解试试。
创建一个冰箱类,冰箱门类,大象类。
这个时候你就只管打开冰箱门——放入大象——关冰箱门。不用思考冰箱放的下放下大象你只管放,放的下放不下那是冰箱该想的。
类
类的定义
calss 类名(继承类名):
语句块
class:关键字
继承类:也是这个类的父类,如果没有合适继承可以使用object类,他也是所有类的父类。
类名:按照标识符规则随意取。
语句块:也是这个类的具体代码。如果语句块为空可以使用pass语句。(pass表示不作任何处理,为防止出现语法错误)
干说无益:
class animal(object):
def __init__(self,name,height,types): #__init__()被称为构造函数
self.name=name
self.height=height
self.types=types
def output(self):
print('这是:{0:10}身高:{1:<10} 种类: {2:10}'.format(self.name,self.height,self.types))
if __name__=='__main__':
y=animal("小狗",0.5,'犬科')
x=animal("小猫",0.2,'猫科')
print(f'{animal.output(x)}')
print(animal.output(y))
运行结果:
如果属性或者方法以双下划线开头“_ _”那么该属性或方法在类外就无法被访问,他们也叫 私有方法或内置方法
1)类的使用
对象=类(参数1,参数2,…)
然后通过对象访问实例或类属性的方法:
访问类实例:对象 . 实例属性
访问类属性:类 . 类属性
关于类的继承:
class 子类(父类1,父类2,...)
类体
构造函数的继承:
父类名称.__init__(self,参数1,参数2,...)
例子:
文件one.py
class animal(object):
def __init__(self,name,height,types):
self.name=name
self.height=height
self.types=types
def output(self):
print('这是:{2:10}身高:{1:<10} 种类:{2:10}'.format(self.name,self.height,self.types))
class dog(animal):
def __init__(self,name,height,types):
animal.__init__(self,name,height,types)
print("汪汪汪!",self.name,' 属于:',self.types)
class cat(animal):
def __init__(self,name,height,types):
animal.__init__(self,name,height,types)
print("喵喵喵!",self.name,' 属于:',self.types)
if __name__=='__main__':
y=dog("小狗",0.5,'犬科')
x=cat("小猫",0.2,'猫科')
运行结果:
在one.py里面运行没有问题
现在咱们在同目录下新建two.py文件
import one as x #调用文件名为one的文件
y=x.dog("旺财",0.5,'犬科') #调用one中的dog类
m=x.cat("小花",0.2,'猫科') #调用one中的cat类
运行结果:
(这一章还是得多练我这说的也不是特别全只是说了些基本的,后面还是得多练习方能掌控)