4返回值、lambda、模块、from、import

返回值

将函数内的数据传递回去

Python 只有 function

  • 最小惊讶原则 希望输入和输出是合常理的
    返回值类型要相同
def maximum(x, y):
   if x > y:
       return x
   elif x==y:
       return 'equal'
   else:
       return y
print(maximum(2, 3))
print(maximum(22, 22))
--------------------------------
3
equal
def maximum(x, y):
   if x > y:
       return x
   else:
       return y
print(maximum(2, 3))
print(maximum(22, 22))
------------------------------------
3
22
  • 多值返回
    python 允许一次返回多个值 : 多值返回的本质是使用tuple中转

  • doc string
    python允许为每个函数增加一个文档字符串, 这个文档字符串可以被代码访问。具体方式是, 在函数的第一个逻辑行定义一个字符串(不执行任何操作)。访问方式是function
    .doc

lambda

一种快速定义简单函数的方法

def inc(n):
   return n+1
print(inc(10))
inc = lambda n: n+1 #快速定义函数
print(inc(20))
----------------------------
11
21

练习:定义一个fib函数。输入n, fib的输出为数列第n项的值。数列某项等于前两项之和。

#fib函数
def fib(n):
   if n <= 1: return 1
   return fib(n-1) + fib(n-2) #递归
fib(10)
-----------------------------------
89

模块

  • Module

预先写好的代码, 供其他代码使用。一个module是一个独立文件。每个module拥有自己的全局变量空间。数据定义,函数,均定义在其中。

  • import

import 引入某个module对象, 可使用module.name的方式引用全局变量

import testmod.py
testmod.variblel
  • from import

    引入模块中的某个或全局变量。 被引入变量不需要module.name 来访问, 仅需要name
    注意: 不推荐使用引入全部变量, 会引起名称空间污染

import datetime
dt = datetime.datetime() # 1
from datetime import datetime
from datetime import datetime as dt

命名空间 在from module_name import 、import module_name中的体现:from关键词是导入模块或包中的某个部分。

* from module_A import X:会将该模块的函数/变量导入到当前模块的命名空间中,无须用module_A.X访问了。
* import module_A:modules_A本身被导入,但保存它原有的命名空间,故得用module_A.X方式访问其函数或变量。
  • 模块的内置属性

    • _name_ 直接运行本模块, _name_值为main;import module, _name_值为模块名字。
    • _file__ 当前 module的绝对路径
    • _dict_
    • _doc_
    • _package_
    • _path_
  • dir

    列出某个模块所有的变量

    import testmod
    dir(testmod)
    
  • import *


只要手指还在,你就可以继续code!

你可能感兴趣的:(4返回值、lambda、模块、from、import)