Python (十四) 面向对象


程序员的公众号:源1024获取更多资料,无加密无套路!

最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等
获取方式: 关注公众号并回复 电子书 领取,更多内容持续奉上


目录

面向对象

类定义

类对象

继承

系列文章索引


面向对象

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 方法:类中定义的函数。
  • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  • 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
  • 局部变量:定义在方法中的变量,只作用于当前实例的类。
  • 实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。
  • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
  • 实例化:创建一个类的实例,类的具体对象。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

类定义

用class关键字定义

class A():
    ...

类对象

class Person:

	# 属性
    age = 18
    #私有属性
    __sex = '女'
    # 构造方法,类有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用
    def __init__(self, name):
        self.name = name
    # 无论构造方法还是其他方法都需要将 self 作为第一个参数,它代表类的实例
    def talent(self, sport):
        self.sport = sport
        print(self.name, '正在'+sport)

    def __getSex(self):
        print('私有方法__sex:',self.__sex)

    #访问私有属性
    def getPrivate(self):
        print('访问私有属性__sex',self.__sex)
        self.__getSex()

通过类名访问属性,格式为:类名.属性名

print(Person.age)

#不能直接访问私有属性,报错
print(Person.__sex)
#创建对象,访问属性、方法
p = Person('剑圣')
print(p.talent('跑步'))
print(p.age)
#通过公共方法访问私有属性
print(p.getPrivate())

继承

Python 支持类的继承,而且支持多继承

class A(BaseClass1,BaseClass2...):
    ...
class PersonA(Person):
    pass

class PersonB(Person):
     def talent(self, sport):
        self.sport = sport
        print(self.name, '正在全力以赴:'+sport)    

#继承父类
pA = PersonA('阿珂')
print(pA.talent('游泳'))

#继承父类,重写父类方法
pB = PersonB('卡卡')
print(pB.talent('跳高'))


#输出
阿珂 正在游泳

卡卡 正在全力以赴:跳高
多继承
#多继承
class People():
    def getPeople(self):
        print('我是People类')

class PersonC(Person,People):
    pass

p = PersonC('阿泰')
print(p.talent('跳绳'))
p.getPeople()

#输出
阿泰 正在跳绳

我是People类


系列文章索引

Python(一)关键字、内置函数

Python(二)基本数据类型

Python(三)数据类型转换

Python(四)字符串

Python(五)数字

Python(六) 列表

Python(七) 条件控制、循环语句

Python(八) 字典

Python(九) 集合


你可能感兴趣的:(#,基础,python,开发语言)