码迷,mamicode.com
首页 > 其他好文 > 详细

day6

时间:2016-06-18 10:09:07      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:


算法

冒泡排序

选择排序

插入排序


一、递归

在函数内调用函数自己称之为递归

应用案例:实现阶乘  1*2*3*4*5*6*7*8*9*10

1
2
3
4
5
6
7
8
9
10
def func(num):
    if num == 1:
        return 1
    return num * func(num - 1)
 
x = func(10)
print(x)
 
# 输出
3628800



二、反射

利用字符串的形式去对象(模块)中操作(寻找(getattr)/检查(hasattr)/删除(delattr)/设置(setattr))成员,缩减了代码的编写

1
2
3
4
5
6
7
8
9
10
func =  getattr(commons, "login")    # 上commons中寻找成员login,并将成员Login的内容赋值给func
func()  # 相当于执行成员login内的代码
  
hasattr(commons, "login")   # 返回一个bool值  查看commons中是否存在login
 
 
setattr(commons, "open_file")   # 在commons对象中创建成员open_file
 
 
delattr(commons, "open_file")   # 在commons对象中删除成员open_file


应用案例:

1
2
3
4
5
6
7
8
9
# 在模块commons.py中有两个函数用来做登录操作和显示首页操作
 
 
def login():
    print("登录")
 
 
def home():
    print("首页")
1
2
3
4
5
6
7
8
9
10
11
# 在index.py中导入commons模块,使用反射根据用户的输入调用相应的方法
 
import commons
 
inp = input("请输入需要操作的方法:(login/home)")
 
if hasattr(commons, inp):
    func = getattr(commons, "login")
    func()
else:
    print("输入错误")



扩展之导入模块:

1
2
obj = __import__("commons")     # 使用这种方式也可以导入模块,commons为模块名,将commons模块的内容导入,赋值给obj
obj = __import__("lib.commons", fromlist=True# 导入多级目录的时候需要设置fromlist=True,如果不设置,则只导入第一层


应用场景:

比如获取用户输入,根据用户的输入来决定登录、注册,分别导入不同的函数,然后在配合反射




三、模块

sys

os

re







day6

标签:

原文地址:http://www.cnblogs.com/CongZhang/p/5595651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!