Python面向对象程序设计第一弹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python面向对象程序设计第一弹相关的知识,希望对你有一定的参考价值。

类和对象:

  定义类:

    class 类名:

      属性

      方法

 

  定义类的对象:

    类的对象名=类名()

 

  类的属性:分为公有和私有,类似于c++的private和public,私有变量名前面添加__

 

  构造函数:在创建类的对象的时候,对类进行初始化的函数。(它的功能远不止赋值这么简单,思维不要被局限了)

       形式:def __init__(self,其他参数)

            语句块

       关于其中的self,self代表的是类的实例,代表当前对象的地址。(按照我的逻辑解释,因为类里面的函数作用在类的对象上,那么对象就是自身,用self表明)

        

       延伸:关于类的实例:http://blog.sina.com.cn/s/blog_44178ab70100br3c.html。

          类方法:不需要定义对象,直接用类名.函数(),这个函数就是类方法

          类的实例方法:需要定义对象,然后运用定义的对象名.函数()进行调用,这个就是实例方法。

 

  析构函数:与构造函数类似,只不过是在结尾的时候进行,而且需要自己主动调用(构造函数不需要主动调用,由其定义可知)

 

  静态属性与静态方法:

      1)它们都是属于类的

    2)静态方法无须传入self参数,无法访问实例变量。   

                什么是实例变量?

                在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。类的每个对象维护它自己的一份实例变量的副本。

    3)直接通过类名访问

    4)静态方法定义

                                      技术分享

 

类的继承:

  格式:

    class  类名(基类名):

 1 #这的确是一段值得研究的程序,在这里我只想提出:作为子类,既可以用自己名字,也可以用老爸的名字来调用对应的属性和方法
 2 #但是,如果子类有和父亲一样的名字的属性和方法,那么会替代,只能用父类自己的名字调用。
 3 class citizen:
 4     def __init__(self):
 5         citizen.IDCard=515611
 6         citizen.name=Naruto
 7         citizen.age=18
 8     def kk(self):   
 9         print(citizen.IDCard,citizen.name,citizen.age)
10 
11 class student(citizen):
12     def __init__(self):
13         student.number=123123
14         student.room=153
15         student.age=97
16     def kk(self):  
17         #如何输出以前的值?依旧用citizen?还是用student?好像都可以。
18         print(citizen.IDCard,citizen.name,citizen.age,student.number,student.room,student.age)
19 
20 # c=citizen()
21 # c.kk()
22 d=student()
23 d.kk()
24 # print(citizen.IDCard)

 

 

 

 

以上是关于Python面向对象程序设计第一弹的主要内容,如果未能解决你的问题,请参考以下文章

C语言对象编程第一弹:封装与抽象

函数式编程第一弹

第一弹:Java 中创建对象的4种方式

python开发第一弹

python + selenium 跳坑之旅 (第一弹)

Python基础学习——第一弹