python继承

Python工程师面试汇总:25条Python知识点,命中高达95%

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-26 10:34:09
1.到底什么是Python?你可以在回答中与其他技术进行对比 下面是一些关键点: Python是一种解释型语言。这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译。其他解释型语言还包括PHP和Ruby。 Python是动态类型语言,指的是你在声明变量时,不需要说明变量的类型。你可以直接编写类似x=111和x="I’m a string"这样的代码,程序不会报错。 Python非常适合面向对象的编程(OOP),因为它支持通过组合(composition)与继承(inheritance)的方式定义类(class)。 Python中没有访问说明符(access specifier,类似C++中的public和private),这么设计的依据是“大家都是成年人了”。 在Python语言中,函数是第一类对象(first-class objects)。这指的是它们可以被指定给变量,函数既能返回函数类型,也可以接受函数作为输入。类(class)也是第一类对象。 Python代码编写快,但是运行速度比编译语言通常要慢。好在Python允许加入基于C语言编写的扩展,因此我们能够优化代码,消除瓶颈,这点通常是可以实现的。 Numpy就是一个很好地例子,它的运行速度真的非常快,因为很多算术运算其实并不是通过Python实现的。 Python用途非常广泛——网络应用,自动化

Python进阶编程 类与类的关系

独自空忆成欢 提交于 2019-11-26 10:28:59
类与类的关系 依赖关系 # 依赖关系: 将一个类的类名或者对象传给另一个类的方法中. class Elephant: def __init__(self, name): self.name = name def open(self,r1): # print(ref1) print(f'{self.name}默念三声: 芝麻开门') r1.open_door() def close(self): print('大象默念三声:芝麻关门') class Refrigerator: def __init__(self, name): self.name = name def open_door(self): print(f'{self.name}冰箱门被打开了....') def close_door(self): print('冰箱门被关上了....') e1=Elephant('大象') r1=Refrigerator('海尔冰箱') e1.open(r1) #将一个类的类名或者对象传给另一个类的方法中.产生了依赖关系 组合关系 组合: 将一个类的对象封装成另一个类的对象的属性. class Boy: def __init__(self, name): self.name = name def meet(self, girl_friend=None): self.girl_friend

Python面向对象(2)类空间问题以及类之间的关系

一曲冷凌霜 提交于 2019-11-26 10:21:24
类空间问题 添加对象属性 对象的属性不仅可以在__init__里面添加,还可以在类的其他方法或者类的外面添加。 class A: def __init__(self,name): self.name = name def func(self,sex): self.sex = sex # 类外部也可以: obj = A('barry') obj.age = 18 print(obj.__dict__) # {'name': 'Rabbit', 'age': 20} # 类内部也可以: obj = A('Rabbit') # __init__方法可以。 obj.func('男') # func 方法也可以。 通过对象找到类的属性 对象查找属性的顺序:先从对象空间找 ------> 类空间找 ------> 父类空间找 ------->..... 类名查找属性的顺序:先从本类空间找 -------> 父类空间找--------> 上面的顺序都是单向不可逆,类名不可能找到对象的属性 类与类之间的关系 依赖关系 关联关系 组合关系 组合:将一个类的对象封装到另一个类的对象的属性中,就叫组合。 聚合关系 关联,聚合,组合关系 写法是⼀样的. 但是, 从含义上是不⼀样的 (1). 关联关系. 两种事物必须是互相关联的. 但是在某些特殊情况下是可以更改和更换的. (2). 聚合关系.

python 2day 进阶

孤街浪徒 提交于 2019-11-26 10:17:15
  作业1 :   作业2:   作业3:      一个列表a=(2,1,3)   a.sort(默认升序)reverse:翻转即倒序   在Python中,属性和方法的访问权限只有两种,也就是公开的和私有的,如果希望属性是私有的,在给属性命名时可以用两个下划线作为开头.   注意 : 私有变量,变量名前面加"__" 私有变量不可继承,不可在外部调用,但是可以有内部调用。 如果非要使用私有变量,那么可以使用dir(class())去查看它真正的名字. 如果你想体现一个变量/函数特别重要你可以使用"_"   @property装饰器   我们之前的建议是将属性命名以单下划线开头,通过这种方式来暗示属性是受保护的,不建议外界直接访问,那么如果想访问属性可以通过属性的getter(访问器)和setter(修改器)方法进行对应的操作。 使用装饰器的时候,需要注意: 1. 装饰器名,函数名需要一致. 2. property需要先声明,再写setter,顺序不能倒过来 3. 如果你希望一点变量只是被访问不能被修改,那么可以使用访问器@property 4. 如果要修改访问器中的变量,可以搭建一个修改器,或者删除访问器.            # 访问器 - getter方法           @property           def age(self):            

Python类的使用

做~自己de王妃 提交于 2019-11-26 10:12:57
一、类和对象 类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为对象,对象都有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类(型)。当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定义出一个叫做“类”的东西。 1、函数的写法 """ 标识 函数名字 (): 有冒号就要缩进一个tab 在Python中所有的函数都有返回值,如果你没有给予return则默认返回出None,如果你给予了,则返回你给予的值 """" def funcName(): ..... return .... """ 标识 类名 () : 有冒号就要缩进一个tab """ class className(object): ........ 1.1导入库, import 库名 1.2. for 循环,如果计数的情况则使用 开始 结束 步长 range的区间是一个前闭后开. range(start,end,[step]) 1.3. 格式化输出 1.3.1 %-->%(),%d后接整型,%f后接浮点,%s后接字符串. 1.3.2 {}-->format(),它可以直接传入任何类型,然后格式化输出。 1.4.print 控制台(terminal)打印 1.4.1 end 以什么方式结尾,默认以换行符"\n" 1.4.2 flush 刷新缓冲区。 1

python面试题

橙三吉。 提交于 2019-11-26 10:12:40
为什么学习Python 爱好 通过什么途径学习Python 首先看视频自学,然后看书自学,最后报班学。 谈谈Python和其他语言的区别 Python属于解释型语言,当程序运行时,是一行一行的解释并运行,调试程序简单,开发效率高。 特点: 语法简洁优美,功能强大,标准库与第三方库都非常强大。具有很强大的可移植性、可扩展性、可嵌入性。 缺点:运行速度慢 简述解释型和编译型编程语言 解释型:就是边解释边执行 编译型:编译后再执行 Python的解释器种类以及相关特点 CPython 当我们从Python官方网站下载并安装好Python 3.6后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。 CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。 IPython IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。 CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。 PyPy PyPy是另一个Python解释器,它的目标是执行速度

python基础

妖精的绣舞 提交于 2019-11-26 10:02:25
类和对象 把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class)。 函数的写法 标识 函数名(): 冒号就要缩进一个tab (在Python中所有的函数都有返回值,如果没有给予return则默认返回出none,如果给予了,则返回给予的值) def func(n): return n * 2 print(func(8)) import time #导入库,import 库名 def func(): for i in range(1,101): #for循环,如果计数的情况则使用……range(开始,结束,步长), #range的区间是一个前闭后开的区间, time.sleep(1) #格式化输出%——%,%d后接整型,%f后接浮点型,%s后接字符串 #\r 回到顶点 print('%s%d%% \r'%('#'*i,i),end="",flush=True) #print 控制台(terminal)打印,end 以什么方式结尾,默认以换行符"\n",flush刷新缓冲区 func() 定义类 """object 不是一个参数 定义类只有两步: 1. 使用标识符class Classname(object): 2. 重写 __init__函数,但是需要记住,一定要打上一个"self"的标记, 因为后面会学到继承

python的常用命令。

北城余情 提交于 2019-11-26 09:37:45
---恢复内容开始--- 常见的问题是如何输出格式化的字符串。我们经常会输出类似" 欢迎XXX!您的账户余额为:XXX" 之类的字符串,而XXX的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。python的字符串格式化用(%)来实现!在字符串内部, %s 表示用字符串替换, %d 表示用整数替换,有几个 %? 占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个 %? ,括号可以省略。 # 使用装饰器的时候,需要注意: # 1. 装饰器名,函数名需要一致. # 2. property需要先声明,再写setter,顺序不能倒过来 # 3. 如果你希望一点变量只是被访问不能被修改,那么可以使用访问器@property # 4. 如果要修改访问器中的变量,可以搭建一个修改器,或者删除访问器. class Person(object): def __init__(self, name, age): self._name = name self._age = age # 访问器 - getter方法 @property def name(self): return self._name # 访问器 - getter方法 @property def age(self): return self._age # 修改器 - setter方法 @age.setter def

python之attr属性、包装、授权

风流意气都作罢 提交于 2019-11-26 09:14:21
一、attr属性 1.1getattr属性 class Foo: x=1 def __init__(self,y): self.y=y def __getattr__(self, item): print('执行__getattr__') f1=Foo(10) print(f1.y) print(f1,'y') f1.aaaa #调用一个对象不存在的属性时,会自动触发getattr 1.2delattra属性 class Foo: x=1 def __init__(self,y): self.y=y def __delattr__(self, item): print('删除操作__delattr__') f1=Foo(10) del f1.y print(f1.x) del f1.x #删除属性时,会触发delattr 1.3setattr属性 class Foo: x=1 def __init__(self,y): self.y=y def __setattr__(self,key,value): print('执行__setattr__') self.__dict__[key]=value f1=Foo(10) print(f1.__dict__) f1.z=2 #设置属性时,会自动触发__setattr__ print(f1.__dict__) 二、包装和授权 2

python day 1

泪湿孤枕 提交于 2019-11-26 08:51:46
类和对象   简单的说,类是对象的蓝图和模板,而对象是类的实例。在面向对象编程的世界中, 一切皆为对象 ,对象都有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类。 导入库, import 库名 for 循环,如果计数的情况则使用 开始 结束 步长 range的区间是一个前闭后开. range(start,end,[step]) 格式化输出 %-->%(),%d后接整型,%f后接浮点,%s后接字符串. {}-->format(),它可以直接传入任何类型,然后格式化输出. print 控制台(terminal)打印 end 以什么方式结尾,默认以换行符"\n" flush 刷新缓冲区. 类中的函数可以有自己的参数 当你想共享这个参数的时候,那么就打上"self"的印记. 例: class age(object): def __init__(self,a): if 18<= a <20: print("可以观看4级") elif 20< a <=50: print("可以观看xxx") else: print("注意身体") b=age(39) 定义类: object 不是一个参数 定义类只有两步: 1. 使用标识符class ClassName(object): 2. 重写__init__函数,但是需要记住,一定要打上一个"self"的标记 因为后面会学到继承