OpenMV可以使用Python来进行二次开发。
Python语法
我们的魔教口号是什么?
print('hello, world')
print()函数也可以接受多个字符串,用逗号“,”隔开,print()会依次打印每个字符串,遇到逗号“,”会输出一个空格,就可以连成一串输出:
print('I am a', 'handsome', 'boy')
print(300)#直接打印整数300
print('100 + 200 =', 100 + 200)#‘字符串’
注释符号:#
对象——面向对象编程
Python对象是我一直难以理解的概念,我要把它放在前面
类(Class)和实例(Instance)
类是抽象的模板!!!,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
#类定义一个叫Student的对象,继承于object类,这是所有类最终都会继承的类
class Student(object):
pass
定义好了Student类,就可以根据Student类创建出Student的实例,创建实例是通过类名+()实现的:
>>> me = Student()
>>> me
<__main__.Student object at 0x10a67a590> #0x10a67a590是内存地址,每个object的地址都不一样
>>> Student
<class '__main__.Student'>
自由地给一个实例变量绑定属性
>>>me.name = 'Iron'
>>>me.name
'Iron'
类可以起到模板的作用。因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去:
class Student(object):
#__init__方法的第一个参数永远是self,表示创建的实例本身
def __init__(self, name, score): #前后分别有两个下划线!!!
self.name = name
self.score = score
self不需要传参数
>>> me = Student('Iron', 59.9)
>>> me.name
'Iron'
>>> me.score
59.9
封装-内
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
#调用方法: name.print_score(),结果 name:99
def print_score(self):
print('%s: %s' % (self.name, self.score))
#对分数分级,class类可以自由加入新的模块
#封装的另一个好处是可以给Student类增加新的方法,比如get_grade:
def get_grade(self):
if self.score >= 90:
return 'A'
elif self.score >= 60:
return 'B'
else:
return 'C'
>>>me = Student('Iron',90)
>>>you= Student('Rose',69)
>>>print(me.name, me.get_grade())
Iron A
>>>me.print_score()
Iron:90
ok
暂时学到这……
模块
以屁眼.py结尾的就是一个模块
import 语句,引入模块,需要在开始就引用,就是c语言的头文件吧
import 模块名.函数名
import sys
from…import 语句
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。语法如下:
#例如,要导入模块 fib 的 fibonacci 函数,使用如下语句:
from fib import fibonacci
函数
def my_print():
print('the most handsome boy in the world ')
return
#使用的时候只需要打my_print()
#这个是无参数无返回的函数