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().方法 来调用父类的方法

原文地址:https://www.cnblogs.com/icetree/p/11038548.html