嵌入式与人工智能培训——python总结(二)——模块、库、OOP

在嵌入式智能小车项目中,涉及到很多模块的控制,比如小车的移动方式,避障以及循迹导航等,这就涉及到更高级的编程策略,需要用到模块化编程,面向对象思想以及多线程运行方式。

1,模块化编程相关内容:

在python中,将一些常用变量,方法等定义到.py文件中,之后在编程的时候通过import该文件,进而调用该文件中的方法的方式即为模块化编程,而这个被调用文件即为模块。python中有很多标准库,可以直接拿来用,不用自己定义,比如sys,math,最为出色的就是机器学习相关的一些库,如scikit-learn,pandas等

在我们自定的模块调用中,需要将待调用的文件放到当前文件目录或者python的系统搜索路径(import sys; print sys.path获取)中,下面是对于标准库和自定义模块的示例:

代码文件 测试输出

#!/usr/bin/python3

# 文件名: using_sys.py

import sys    #标准库

print('命令行参数如下:')

for i in sys.argv:

    print(i)

print('\n\nPython 路径为:', sys.path, '\n')

$python using_sys.py param1 param2

-->output:

命令行参数如下:

using_sys.py

param1

param2

#!/usr/bin/python3

# 文件名: support.py

 #自定义模块库

def print_func( par ):

    print ("Hello : ", par)

    return

#!/usr/bin/python3

# test.py 调用模块

import support # 导入模块

# 调用模块里包含的函数

support.print_func("Runoob")

$python test.py

-->output

Hello: Runoob

直接import modulename则可通过modulename.function()方式调用模块函数,或者可以通过from .... import仅调用我们需要的模块,比如斐波那契(fibonacci)数列模块名为fibo,包含函数fib(n) & fib2(n),用法1:import fibo ;  fibo.fib(20) 调用  用法2:from fibo import fib   ;   fib(20)调用(from modulename import *则是导入该模块中的所有函数)

  • 特点:

__name__属性:模块被引入时,若要模块中的某一程序块不执行,可以用__name__属性来使该程序块仅在该模块自身运行时执行。

dir()函数:内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回: >>>dir(fibo)   -->output: ['__name__', 'fib', 'fib2']

  • 包:包是一种管理 Python 模块命名空间的形式,采用"点模块名称"

比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B

比如下面对音频处理的包结构:

sound/ 顶层包

            __init__.py

           formats/

                       __init__.py

                       wavread.py

                       wavwrite.py 

                        。。。

初始化sound包

文件转换格式子包

 

 

 

 

           effects/

                       __init__.py

                      echo.py

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值