python面向对象

python面向对象

	从面向对象开始,我们就已经进入了编程语言的高级部分,但我们一定以之前学习的内容为基础,来构建
自己的编程金字塔。

Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。

如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。

接下来我们先来简单的了解下面向对象的一些基本特征。

面向对象技术简介

这个部分介绍的不仅仅是独指python,他是所有具有面向对象语言应该有的并且能实现的概念,务必牢记每一条。

专业名词定义
类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例
方法重写如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写
实例化创建一个类的实例,类的具体对象

其实还有一些,只是写到这儿我觉得稍显枯燥,所以把神秘的面纱交给各位coder自己去查阅了

创建类

简单的类编写:

class MyClass:
    """一个简单的类实例"""
    i = 12345
    def f(self):
        return 'hello world'
# 实例化类
x = MyClass()
# 访问类的属性和方法
print("MyClass 类的属性 i 为:", x.i)    
print("MyClass 类的方法 f 输出为:", x.f())

# 输出结果为:
# MyClass 类的属性 i 为: 12345
# MyClass 类的方法 f 输出为: hello world
构造器

构造器再使用的时候,即使类本身没有这个属性,也可以调用,即用即取

class Complex:
    def __init__(self, realpart, imagpart):
        self.r = realpart     
        self.i = imagpart
x = Complex(3.0, -4.5)
print(x.r, x.i)   # 输出结果:3.0 -4.5
self

self代表类的实例,而非类
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

class Test:     
    def prt(self):
        print(self)
        print(self.__class__)
t = Test()
t.prt()
继承

Python 同样支持类的继承,如果一种语言不支持继承,类就没有什么意义。

class people:
    #定义基本属性
    name = ''
    age = 0
    #定义私有属性,私有属性在类外部无法直接进行访问
    __weight = 0
    #定义构造方法
    def __init__(self,n,a,w):
        self.name = n
        self.age = a
        self.__weight = w
    def speak(self):
        print("%s 说: 我 %d 岁。" %(self.name,self.age))
#单继承示例
class student(people):
    grade = ''
    def __init__(self,n,a,w,g):
        #调用父类的构函
        people.__init__(self,n,a,w)
        self.grade = g
    #覆写父类的方法
    def speak(self):
        print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))
s = student('ken',10,60,3)
s.speak()

更厉害的是,python支持多继承哟~ 格式和单继承并没有多大的区别

class DerivedClassName(Base1, Base2, Base3):
    <statement-1>
    ...
    <statement-N>
私有化

私有化的表示就很简单了,在属性和方法的前面加上两个下划线就表示私有了 “__”。
这个私有就是真的私有了,实例都不能访问它。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值