python反射

python170道面试题上

左心房为你撑大大i 提交于 2019-12-16 22:41:10
语言特性 1. 谈谈对 Python 和其他语言的区别 2. 简述解释型和编译型编程语言 3. Python 的解释器种类以及相关特点? 4. Python3 和 Python2 的区别? 5. Python3 和 Python2 中 int 和 long 区别? 6. xrange 和 range 的区别? 编码规范 7. 什么是 PEP8? 8. 了解 Python 之禅么? 9. 了解 DocStrings 么? 10. 了解类型注解么? 11. 例举你知道 Python 对象的命名规范,例如方法或者类等 12. Python 中的注释有几种? 13. 如何优雅的给一个函数加注释? 14. 如何给变量加注释? 15. Python 代码缩进中是否支持 Tab 键和空格混用。 16. 是否可以在一句 import 中导入多个库? 17. 在给 Py 文件命名的时候需要注意什么? 18. 例举几个规范 Python 代码风格的工具 数据类型-字符串 19. 列举 Python 中的基本数据类型? 20. 如何区别可变数据类型和不可变数据类型 21. 将"hello world"转换为首字母大写"Hello World" 22. 如何检测字符串中只含有数字? 23. 将字符串"ilovechina"进行反转 24. Python 中的字符串格式化方式你知道哪些? 25.

六. python面向对象(内置函数)

拥有回忆 提交于 2019-12-16 17:24:14
一. 内置函数 1.@property(用于场景方法不要传递参数 且有return可以使用 就是普通函数) property 内置装饰器函数 只在面向对象中使用 函数的作用是在新式类中返回属性值。 from math import pi print(pi) class Circle: def __init__(self,r): self.r=r def per(self): # 周长 return 2*pi*self.r def aer(self): # 面积 return self.r**2*pi aa=Circle(3) print(aa.per()) print(aa.aer()) from math import pi # property() 函数的作用是在新式类中返回属性值。 把方法伪装成属性了 class Circle: def __init__(self, r): self.r = r @property # @property 把方法伪装成属性了 def per(self): # 周长 使用 @property 伪装成属性 不能单参数 return 2 * pi * self.r @property def aer(self): # 面积 return self.r ** 2 * pi aa = Circle(3) print(aa.per) #

python小功能-学生选课

↘锁芯ラ 提交于 2019-12-15 12:49:18
本来打算用面向对象和反射来实现,结果,反射没用上,这个东西新接触~~不太会 kecheng_list = [ ] kecheng_list_1 = [ ] main_list = [ "退出" , "查看课程" , "选课" , "查看已选课程" , "删除课程" ] class KeCheng ( object ) : def __init__ ( self , name ) : """ 初始化课程 :param name: 课程名字 """ self . name = name @ staticmethod def show_all_class ( ) : for i in range ( len ( kecheng_list ) ) : print ( kecheng_list [ i ] . name ) class Studednt ( object ) : def __init__ ( self , ** kwargs ) : """ 初始化学生 :param kwargs: name 必须传递,其余随意 """ pass self . x = kwargs def search_kecheng ( self ) : for i , item in enumerate ( kecheng_list_1 , 1 ) : print ( i , item ) your

你想要的Python面试都在这里了【315+道题】

爱⌒轻易说出口 提交于 2019-12-11 18:31:30
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 写在前面 近日恰逢学生临近毕业,课程后期大家“期待+苦逼”的时刻莫过于每天早上内容回顾和面试题问答部分【临近毕业每天课前用40-60分钟对之前内容回顾、提问和补充,专挑班里不爱说话就的同学回答】。 期待的是可以检验自己学习的成功;苦逼的是怎么又有东西没记住,但我们依然每天坚持一遍、一遍又一遍指导记住为止。 需要完整的面试题可以看一下下图: 第一部分 Python基础篇(80题) 为什么学习Python? 通过什么途径学习的Python? Python和Java、PHP、C、C#、C++等其他语言的对比? 简述解释型和编译型编程语言? Python解释器种类以及特点? 位和字节的关系? b、B、KB、MB、GB 的关系? 请至少列举5个 PEP8 规范(越多越好)。 通过代码实现如下转换: 二进制转换成十进制:v = “0b1111011” 十进制转换成二进制:v = 18 八进制转换成十进制:v = “011” 十进制转换成八进制:v = 30 十六进制转换成十进制:v = “0x12” 十进制转换成十六进制:v = 87 请编写一个函数实现将IP地址转换成一个整数。 如 10.3.9.12 转换规则为: 10 00001010 3 00000011 9 00001001 12 00001100

python inspect模块解析

烈酒焚心 提交于 2019-12-10 13:37:31
inspect模块主要提供了四种用处: (1).对是否是模块,框架,函数等进行类型检查。 (2).获取源码 (3).获取类或函数的参数的信息 (4).解析堆栈 使用inspect模块可以提供自省功能,下面是关于自省的一些介绍:  首先通过一个例子来看一下本文中可能用到的对象和相关概念。 # coding: UTF-8 import sys # 模块,sys指向这个模块对象 import inspect def foo(): pass # 函数,foo指向这个函数对象 class Cat(object): # 类,Cat指向这个类对象 def __init__ (self, name = ' kitty ' ): self.name = name def sayHi(self): # 实例方法,sayHi指向这个方法对象,使用类或实例.sayHi访问 print self.name, ' says Hi! ' # 访问名为name的字段,使用实例.name访问 cat = Cat() # cat是Cat类的实例对象 print Cat.sayHi # 使用类名访问实例方法时,方法是未绑定的(unbound) print cat.sayHi # 使用实例访问实例方法时,方法是绑定的(bound) 有时候我们会碰到这样的需求,需要执行对象的某个方法,或是需要对对象的某个字段赋值

Spring 和 Django 安全机制的比较

岁酱吖の 提交于 2019-12-10 06:31:22
做了一年多的python 方面的web开发工作,昨个有个同学问我Django的安全机制,我是一脸的茫然。每天使用公司开发框架的我,对这些东西了解的甚少,俨然成为一个真正的"码农",只知其然而不知其所以然。我要改变,故从网络上,查了下,记下被查,内容如下: 介绍 Spring是Java语言开发的一站式Web框架。包括:SpringMVC,Spring,SpringSecurity,SpringAOP等子框架。Spring在数据库访问层可以整合Hibernate,iBatis等第三方框架。构成了一个完整的Web应用程序框架。 Spring大量使用了策略模式、模板方法模式,提供了钩子回调第三方的API,因而可以整合大量第三方框架。 Django是Python语言开发的一站式Web应用程序框架。其独立开发了从Web层到数据库访问层在内的所有框架。 Spring和Django在功能上基本对等,都是Web应用程序开发的基础平台。 Django利用了Python语言自身的优势,优雅地实现了一整套Web应用框架。 Spring为人广为诟病的一点就是,其大量使用了xml格式的配置文件。配置工作量相当大。在Java5引入annotation之后,虽然可以在Java源码中直接加上配置。但是每次修改配置必须重新编译程序,殊为不便! Python是动态语言

python插件化开发

假如想象 提交于 2019-12-09 19:23:52
动态导入 运行时,根据用户需求(提供字符串),找到模块的资源动态加载起来。 1内建函数__import__() __import__(name,globals = none,locals = none,fromlist = (),level = 0) name,模块名 import语句本质上就是调用这个函数,但是不鼓励直接使用它,建议使用importlib.import_module()。 sys = __import__("sys")等价于import sys #test1.py class A: def showme(self): print("i am A") #TEST2.PY if __name__ =="__main__": mod = __import__("test1") cls = getattr(mod,"A") cls().showme() 结果为: i am A 也可以定义一个函数,动态的加载。 上面的showme不要,不然调用了。 importlib.import_module() importlib.import_module(name,package = none) 支持绝对导入和相对导入,如果是相对导入,package必须设置。 #test1.py class A: def showme(self): print("i am A") #TEST2

python_反射:应用

吃可爱长大的小学妹 提交于 2019-12-07 22:52:28
class User(object): def denglu(self): print('欢迎来到登录页面!') def zhuce(self): print('欢迎来到注册页面!') def youke(self): print('欢迎来到游客页面!') u = User() while True: q = input('请输入内容(dengli或zhuce或youke):') if hasattr(u,q): func = getattr(u,q) func() 程序会根据输入的字符串实现调用不同函数的功能。 来源: https://www.cnblogs.com/wangdianchao/p/12003788.html

python类之特殊属性和魔术方法

一曲冷凌霜 提交于 2019-12-06 21:19:07
一 python特殊属性 1 总述 属性 含义 _ name_ 类,函数,方法等的名字 _ module_ 类定义所现在的模块名 _ class_ 对象或类所属的类 _ bases_ 类的基类的元素,顺序为他们在基类列表中出现的顺序 _ doc_ 类/函数的文档字符传,如果没有定义则为None _ mro_ 类的mro,class.mro()返回 _ dict_ 类或实例的属性,可写的字典 _ dir_ 返回了类或者对象所有成员列表,dir()函数调用的是_ dir_ (),如果提供了_ dir_ (),则返回属性列表,否则尽可能从__dict__属性中收集信息 2 name 获取类和函数的名字 #!/usr/local/bin/python3.6 #coding:utf-8 class A: pass class B(A): pass def C(): pass print (A.__name__,B.__name__,C.__name__,sep='\n') 3 module 类定义所在的模块名 #!/usr/local/bin/python3.6 #coding:utf-8 class A: pass class B: pass print (A.__module__,B.__module__) #!/usr/local/bin/python3.6 #coding:utf-8

python系列四反射机制

安稳与你 提交于 2019-12-06 10:52:26
反射机制原理: 1.根据字符串的形式导入模块。2.根据字符串的形式去对象(某个模块)中操作其成员 实现思路:规定用户输入格式 模块名/函数名 通过__import__的形式导入模块,并通过 hasattr和getattr 检查并获取函数返回值。练习一: #通过用户输入的形式, 导入模块 inp = input('请输入需要导入的模块名:') #__import__用于以字符串的形式导入模块 dd = __import__(inp) #在模块寻找函数并执行函数 inp_func = input('请输入需要执行的函数:') #getattr()用于以字符串的形式去某个模块中寻找函数 tager_func = getattr(dd, inp_func) #在获取到的函数名后加()表示执行函数 result = tager_func() print(result) 练习二: 1).创建文件common.py def login(): return 'login' def logout(): return 'logout' def nb(): return '很牛逼的网页' 2.创建文件test.py import common inp = input('请输入模拟的url路径:') url_inp = inp.split('/')[-1] if hasattr(common, url