"""
封装、继承、多态 1. 谈谈你对面向对象的理解?
2. Python面向对象中的继承有什么特点?
3. 面向对象深度优先和广度优先是什么?
4. 面向对象中super的作用?
5. 列举面向对象中特殊成员(带双下划线的特殊方法,如:__new__、__init__、__call__等)
6. 静态方法和类方法区别?
"""
#谈谈你对面向对象的理解?
#面向对象,首先我们要理解对象,什么是对象?对象是特征与技能的结合体。特征即变量,技能即函数,对象就是变量和函数的结合体,在python中既有面向对象编程,
也有面向过程编程,在所做项目中需要用到哪种更加便捷就用那种编程方式,学面向对象的人,正常最常听到的一句话就是“万物皆对象”,我们编程就是将现实中的事物,
抽象成程序中的对象,用特征和技能去表现出对象。 # Python面向对象中的继承有什么特点?
# 减少代码重用,可以多继承,缺点就是把子类与父类强耦合到一起 # 面向对象深度优先和广度优先是什么?
#深度优先主要体现在经典类在菱形继承的背景下,查找属性的方式
#广度优先主要体现在新式类在菱形继承的背景下,查找属性的方式,
经典类只在python2中,由于的python2不支持服务的倒计时,推荐用python3,python3中的所有类都是新式类。 # 面向对象中super的作用?
super在子类派生出新的方法中重用父类的功能
注意:super()的返回值是一个特殊的随想,该对象专用用来调用父类的属性
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return "呵呵" class Male(Person):
def __init__(self, name, age):
super().__init__(name, age)
# 列举面向对象中特殊成员(带双下划线的特殊方法,如:__new__、__init__、__call__等)
# __new__ 可以调用其他类的构造方法或者直接返回别的对象来作为本类的实例。
# __init__ 负责将类的实例化
# __call__ 对象后面加括号,触发执行
# __str__ print打印一个对象时 __unicode__
# __repr__ 和__str__
# __doc__ 类的注释,改属性是无法继承的
# __getattr__ 在使用调用属性(方式.属性)不存在的时候触发
# __setattr__ 添加/修改属性会触发它的执行
#__delattr__ 删除属性的时候会触发
# __delete__ 采用del删除属性时,触发
# 静态方法和类方法区别?
# 1. 静态方法: 相当于普通函数 staticmethod
# 2. 类方法: 通过类调用,第一个参数默认是类本身 classmethod

面向过程和面向对象http://www.cnblogs.com/ManyQian/p/8797097.html

反射
通过字符串来操作类与对象的属性,这种操作称为反射
hasattr(obj,某种属性)
不知道有没有某种方法时,进行的判断
getattr(obj,某种属性,None)
查看某种属性,没有属性,可以设置为NONE,有就返回值
setattr(obj,某种属性,属性对应的值)
添加obj对象的某种属性,及其值
delattr(obj,某种属性,属性对应的值)
删除obj对象的某种属性,及其值

python3 开发面试题(面向对象)6.6的更多相关文章

  1. python3 开发面试题(collections中的Counter)6.7

    ''' 编写Python脚本,分析xx.log文件,按域名统计访问次数 xx.log文件内容如下: https://www.sogo.com/ale.html https://www.qq.com/3 ...

  2. python3 开发面试题(创建表结构)6.9

    纯sql语句写出: '''设计 图书管理系统 表结构: - 书 - 书名 - 作者 - 姓名 - 出版社 - 出版社名称 - 地址 一本书只能由一家出版社出版 --> 多对一(书对出版社) 一本 ...

  3. python3 开发面试题(常用模块以及第三方库)6.5

    """ 1. os和sys都是干什么的? 2. 你工作中都用过哪些内置模块? 3. 有没有用过functools模块? """ #sys模块 ...

  4. python3 开发面试题(装饰器必须考)6.4

    def f(): print("2018-06-04") # 每次调用f的时候 在打印"2018-06-04" 之前打印一句 开始, 之后再打印一句 结束 de ...

  5. python3 开发面试题(去重保持原来的顺序)6.2

    """ l1 = [11, 2, 3, 22, 2, 4, 11, 3] 去重并保持原来的顺序 """ #方式一 for 循环方法 l1 = ...

  6. python3 开发面试题(字典和拷贝)5.30

    """ 问:执行完下面的代码后, l,m的内容分别是什么? """ def func(m): for k,v in m.items(): m ...

  7. python3 开发面试题(%s和format的区别)5.31

    在格式化字符串中有两种方法: 1.%s 2.format 大家常用的是哪一种方法?为什么要用你选的这种方法? 我们先看一个例子: 首先我们定义一个我军需要击杀的恐怖分子的地理坐标为 c=(128,12 ...

  8. python3 开发面试题(生成列表)6.1

    话不多说直接上题: 生成如下列表: [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12]] # 方式一 list1 ...

  9. php开发面试题---游戏面向对象设计与分析实例

    php开发面试题---游戏面向对象设计与分析实例 一.总结 一句话总结: 不要光空想,多看几个实例就知道自己的游戏该怎么设计了 根据实例去理解面向对象编程的的六大原则 1.英雄种类分别有:战士.法师. ...

随机推荐

  1. LFS、BLFS、ALFS、HLFS的区别

    转自:http://www.ha97.com/3927.html Linux From Scratch (LFS) 及其后代代表一种新方法,向用户揭示 Linux 操作系统是如何工作的.LFS 基于这 ...

  2. vue注册全局属性

    例:统一引用getSpiderToken方法 main.js中相关代码 import { getSpiderToken } from '../static/js/storage' Vue.protot ...

  3. [C]语法, 知识点总结(二. 结构体, 类别名, static, const)

    结构体 定义: struct Student{ // 定义结构体Student, stu是创建的对象         char a[17]; // 结构体里面可以有多种不同类型的变量         ...

  4. .net中的一般处理程序实例

    最近在学习一般处理程序,也学习了一些jQuery的异步操作,于是就想着亲手做一个小的登陆,锻炼一下自己. 1.首先新建了一个项目LoginDemo,在此基础上又添加了一个一般处理程序BackLogin ...

  5. Javascript - Vue - 请求

    本地增删查的一个例子 <div id="box">    <div class="panel panel-primary">       ...

  6. linux笔记_day08

    1.文件权限管理 1)chown:改变文件属主(只有管理员才能使用这个命令)(change owner) chown USERNAME file... -R :修改目录以及内部文件的属主 --refe ...

  7. 苹果ANCS协议学习【转】

    苹果ANCS协议学习 转自:http://www.cnblogs.com/alexcai/p/4321514.html 综述 苹果通知中心(Apple Notification Center Serv ...

  8. Visual Studio 2012“完美的拥抱”Visual Studio Online

    看了Visual Studio 2012完美的拥抱GitHub 写的不错,不过,配置起来太麻烦.既然是使用VS编码,微软的东西嘛,当然还有更简单的,那就是Visual Studio Online.不用 ...

  9. JPA 菜鸟教程 15 继承-一个表-SINGLE_TABLE

    原地址:http://blog.csdn.net/JE_GE/article/details/53678422 继承映射策略 一个类继承结构一个表的策略,最终只生成一个表,这是继承映射的默认策略. 举 ...

  10. 前后端分离之mockjs基本介绍

    安装与使用 # 安装 npm install mockjs #使用 Mock var Mock = require('mockjs') var data = Mock.mock({ // 属性 lis ...