"""
封装、继承、多态 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. python删除列表元素remove,pop,del

    python删除列表元素 觉得有用的话,欢迎一起讨论相互学习~Follow Me remove 删除单个元素,删除首个符合条件的元素,按值删除,返回值为空 List_remove = [1, 2, 2 ...

  2. Java SSM框架之MyBatis3(八)MyBatis之动态SQL

    前言: mybatis框架中最具特色的便是sql语句中的自定义,而动态sql的使用又使整个框架更加灵活. 创建User表 /*Table structure for table `user` */ D ...

  3. 【LibreOJ】#6354. 「CodePlus 2018 4 月赛」最短路 异或优化建图+Dijkstra

    [题目]#6354. 「CodePlus 2018 4 月赛」最短路 [题意]给定n个点,m条带权有向边,任意两个点i和j还可以花费(i xor j)*C到达(C是给定的常数),求A到B的最短距离.\ ...

  4. 【转】[.Net] 确定当前网站的物理文件路径

    确定当前网站的物理文件路径 在应用程序中,您可能需要确定服务器上的文件或其他资源的路径.例如,如果应用程序以编程方式对文本文件进行读写操作,则必须为用于读取和写入的方法提供该文件的完整物理路径. 将物 ...

  5. [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。

    解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...

  6. Anaconda+django写出第一个web app(七)

    今天来实现如何在页面弹出一些信息,比如注册成功后弹出注册成功的信息.这一点可以通过materialize里的Toasts来实现. django自带的messages可以告诉我们是否注册成功,以及注册失 ...

  7. Jquery常用方法合集,超实用

    转自:十分钟玩转 jQuery.实例大全 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库. ...

  8. Python-Analysis-Malware

    Python恶意软件分析应用-PEfile 0x1.前言 要想对恶意代码快速分析,Python是一门必须要掌握的编程技能.因为它是跨平台的,而且容易阅读和编写.许多开源安全工具也是用Python写的. ...

  9. Coins in a Line I & II

    Coins in a Line I There are n coins in a line. Two players take turns to take one or two coins from ...

  10. Python 优雅获取本机 IP 方法

    原文 见过很多获取服务器本地IP的代码,个人觉得都不是很好,例如以下这些 不推荐:靠猜测去获取本地IP方法 #!/usr/bin/env python # -*- coding: utf-8 -*- ...