面向对象

1.        面向对象的简称?
面向对象编程 —— Object Oriented Programming 简写 OOP,是一种编程思想或者方式

2.        面向对象和面向过程的区别?
面向过程是早期的一个编程思想,所有的步骤从头到尾逐步实现,把某些功能独立的代码块封装成函数,然后顺序的调用不同的函数,注重步骤与过程,不注重职责分工,适合开发简单的项目。
面向对象相比函数是一个更大的封装,面向对象注重对象和职责,不同的对象承担不同的职责,适合开发比较复杂的项目。

3.        类和对象的概念?
类和对象是面向对象的两大核心概念
类是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用。就好比图纸或者模板,根据这个模板可以创建很多个对象
对象是由类创建出来的一个具体存在,可以直接使用。

4.        类和对象的关系?
类是模板,对象是根据类这个模板创建出来的,应该 先有类,再有对象

类只有一个,而对象可以有很多个,不同的对象之间属性可能会各不相同

类中定义了什么属性和方法,对象中就有什么属性和方法,不可能多,也不可能少

5.        属性和方法是什么?
对对象的特征描述,通常可以定义成属性

对象具有的行为(动词),通常可以定义成方法

6.        如何定义类并创建对象?
class 类名:

    def 方法1(self, 参数列表):

        pass

类名符合大驼峰命名,方法第一个参数必须是self,self 就表示当前调用方法的对象自己在方法内部,可以通过self. 访问对象的属性,也可以通过 self. 调用其他的对象方法
创建一个对象如下:
对象变量 = 类名() 自动分配内存空间,自动初始化方法(定义属性)

7.        __init__()方法的作用
初始化方法,在对象创建的时候会自动执行,主要用来定义类的属性

8.        __str__()方法的作用
返回对象的描述信息,print 函数输出对象变量时,能够打印自定义的内容,必须返回字符串

9.        __del__()方法的作用
对象被从内存中销毁前,会被自动调用

10.    面向对象的三大特点
封装、继承、多态

11.    如何理解面向对象的封装?
面向对象编程的第一步,就是要把属性和方法封装到类中,外界使用类创建对象,然后让对象调用方法,对象方法的细节都封装在类的内部。


1.        私有属性、私有方法;伪私有属性和方法
私有属性:对象不希望公开的属性,语法是在属性前面加上__属性名
私有方法:对象不希望公开的方法,语法是在方法前面加上__方法名
伪私有属性和方法是指在Python中并没有真正意义上的私有,而是把属性或者方法名前面加上了_类名,可以通过_类名__属性名的形式访问,但是不推荐。

2.        继承的作用,以及语法
继承实现了代码的重用,子类可以拥有父类的所有方法和属性。
class  子类名(父类名):
    pass

继承具有传递性,子类可以拥有所有与子类有继承关系的父类方法和属性。

3.        重写父类方法,如何调用重写的父类方法?
当父类的方法实现不能满足子类需求时,可以对方法进行重写(override)
重写父类方法有两种情况:
覆盖父类的方法,子类中创建一个跟父类同名的方法;
对父类方法进行扩展,使用super().父类方法调用,另外可以通过父类名.父类方法()的形式去访问,但是不推荐。

 

4.        多继承的概念以及语法
多继承:子类可以拥有多个父类,并且具有所有父类的属性和方法。多个父类之间应尽量避免同名的方法和属性。

class 子类名(父类名1, 父类名2...)

        pass

5.        多态的概念。
不同的子类对象调用相同的父类方法,产生不同的执行结果

多态可以增加代码的灵活度,以继承和重写父类方法为前提,是调用方法的技巧,不会影响到类的内部设计


1.        类属性和实例属性的概念。
类属性是给类对象(类是一个特殊的对象)中定义的属性,通常用来记录与这个类相关的特征,类属性不会用于记录具体对象的特征。类属性的定义是在初始化方法之外的
实例对象的属性叫做实例属性,在初始化方法内部定义

2.        类属性和实例属性的访问
类属性的访问是类名.类属性
实例属性的访问是实例对象.属性名,也可以在类内部使用self.属性名访问

3.        类方法的定义和使用

@classmethod
def 类方法名(cls):

pass
需要修饰器@classmethod来标识,第一个参数必须是cls,代表当前类对象本身。可以通过类名.类方法()来调用

4.        静态方法的定义和使用
既不需要访问实例属性或者调用实例方法,也不需要访问类属性或者调用类方法。
@staticmethod

def 静态方法名():

    pass
需要用修饰器 @staticmethod 来标识,告诉解释器这是一个静态方法

通过类名.静态方法()调用

5.        类方法,静态方法和实例方法的区别
类方法就是针对类对象定义的方法,在类方法内部可以直接访问类属性或者调用其他的类方法,使用@classmethod标识,需要传递cls参数,代表类对象本身。
静态方法是既不需要访问实例属性或者调用实例方法,也不需要访问类属性或者调用类方法。使用@staticmethod标识。

实例方法,没有特殊的修饰符,第一个参数是self,代表当前对象的引用

 

6.        单例模式的定义
只有一个实例

7.        __new__和__init__方法的调用顺序
先执行__new__方法,会返回为创建对象的引用,然后才会执行__init__方法

8.        了解异常的概念
程序在运行时,如果 Python 解释器 遇到 到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常

9.        try  except 捕获异常

10.    else  finally在异常中的作用
else是没有发生异常才会执行
finally是无论有没有异常都会执行

11.    如何抛出自定义异常(主动抛出异常)

创建一个 Exception 的对象,使用 raise 关键字抛出异常对象



1.        模块的概念,如何导入模块
每一个以扩展名py结尾的Python源代码文件都是一个模块, 在模块中定义的全局变量、函数、类 都是提供给外界直接使用的工具,模块相当于是一个工具包

导入模块的两种方式:

①     import 模块名1, 模块名2

import 模块名1

import 模块名2

    ② from 模块import 工具/*

给模块起别名使用as关键字,模块别名使用大驼峰命名法

2.        理解包的概念
包是一个包含多个模块的特殊目录,目录下有一个特殊的文件__init__.py
使用 import 包名 可以一次性导入包中所有的模块

 

3.        文件的概念,文件的打开、读取、写入、关闭
计算机的文件,就是存储在某种长期储存设备上的一段数据
open         打开文件,并且返回文件操作对象

read 将文件内容读取到内存

write         将指定内容写入文件

close         关闭文件

 

4.        文件打开方式


5.        按行读取文件内容
使用readline方法可以一次读取一行内容,方法执行后,会把文件指针移动到下一行,准备再次读取,适合读取大文件内容。

6.        文件的常用操作
rename    重命名文件     os.rename(源文件名, 目标文件名)

remove    删除文件         os.remove(文件名)

7.        目录的常用操作
listdir        目录列表         os.listdir(目录名)

mkdir        创建目录         os.mkdir(目录名)

rmdir        删除目录         os.rmdir(目录名)

getcwd     获取当前目录         os.getcwd()

chdir         修改工作目录         os.chdir(目标目录)

path.isdir 判断是否是目录     os.path.isdir(目录路径)

path.isfile         判断是否是目录    os.path.isfile(文件路径)

8.        设置文件编码为UTF-8的方式
Python2.x默认字符集为ASCII编码,不支持中文,Python3.x默认字符集为UTF-8编码
# *-* coding:utf8 *-*
# coding=utf8

9.        eval函数的作用
将字符串当成有效的表达式来求值并返回计算结果




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值