python小白学习之旅4
此次文章写完就意味着我们进入了python的高级语法门户
1.oop面向对象编程(objected oriented programming)
1.1类与属性
首先用class来创建一个类,这里说明一下类名最好运用大驼峰的写法否则在pycharm的开发环境中会出现波浪线影响美观。类中包含方法也就是用def定义的函数,在类中我们默认所有的函数第一个形参是self,他是一个能指向实例本身的应用,让实例能访问类中的属性和方法。
class Dog():
def __init__(self,age,name): #注意类中的函数称为方法,__init__函数是一个特殊的方法,具有第一调用的特权
self.age = age
self.name = name
my_dog = Dog(18,'hw') #实例化,可以创建多个实例来进行不同意义的表达
my_dog.name #输出实例化的name 也可以输出a
首先我们应该明确属性就是方法里的形参,关于修改属性的值有三种方法:第一直接修改 比如:self.age = 18;第二种是通过方法修改属性; 第三种是通过通过方法进行递增
class wife(): def __init__(self,name,age): self.name = name self.age = 19 #此处直接修改属性值 def Describe(self): personal = str(self.name)+ ' ' + str(self.age) print(personal.title()) def incre_age(self,age): self.age += age kiss = wife('lhs',18) #通过实例修改属性的值 kiss.Describe() print('*'*20) kiss.incre_age(10) #通过设立一个加10的函数实现属性的改变 kiss.Describe()
1.2继承
在定义的自类名字中的括号中写入父类的名字即是继承父类,子类可以使用父类中除私有成员之外的所有成员,子类与父类效果相同的情况下优先使用子类,同时子类可以自主增加新的方法;
继承分为单继承和多继承,意义就如字面意思;
多态是指同一个对象在不同情况下有不同的状态出现;
mixin设计模式主要是用来对类功能的扩展。后续跟进;
下面介绍类属性,property(函数1,函数2,函数3,'doc文档说明'),是一种附加属性的方法:
class Person(): def fget(self): return self.name * 3 def fset(self, fname): self.name = fname.upper() def fdel(self): self.name = 'noname' fname = property(fget, fset, fdel, '说明文档') p1 = Person() # 第一步实例化 p1.fname = 'lhs' # 给属性需要赋的值 print(p1.fname) # 属性函数运作
tips:在属性名钱加两个下划线__表示这是个私有变量,只能在当前类中访问 pubic指的是公开的变量属性
super()是一类特殊函数,用于调取父类函数中的构造函数.在python3中一般用super().方法 来调用父类的方法