
# 初始化HiLens Framework
该接口用于初始化HiLens Framework。在调用HiLens Framework的其他接口之前，需要先做全局初始化。
- **接口调用**
  hilens.init(verify)
  
- **参数说明**
  表1参数说明 
  | **参数名** | **是否必选** | **参数类型** | **描述**                                                                                                                                                                                                    |
  |:---|:---|:---|:---|
  | verify  | 是        | 字符串      | 长度0到128的字符串。 应与华为HiLens管理控制台上[新建技能](https://support.huaweicloud.com/usermanual-hilens/hilens_02_0022.html#section3)时，所填写的"基本信息"中的"检验值"一致。如果不一致，HiLens Framework会强制技能停止。 |
     
  图1新建技能   
  ![](https://support.huaweicloud.com/devg-hilens/zh-cn_image_0000001208272213.png "点击放大") 
- **返回值**
  0为HiLens Framework初始化成功，其他为失败。
  该方法还可以用来验证技能是否损坏或被篡改。如果想要使用该功能，参数verify应该是开发者编写的一个函数的返回值，该返回值是实时计算要验证的文件的hash值。开发者在完成技能的开发后，用同样的hash方法计算出hash值，填入控制台[新建技能](https://support.huaweicloud.com/usermanual-hilens/hilens_02_0022.html)的校验值。如下所示：
  ```
  #! /usr/bin/python3.7
  import hilens
  def verify():   
      # 开发者需要实现一个方法，来验证程序身份(以防被损坏、篡改)
      # 例如可以计算技能包中重要文件的Hash值，verify应当返回一个字符串(1~128字节)。
      # 在HiLens平台，技能开发中填入此Hash值。调用init方法后，技能会自动将此Hash值发送到平台上进行比对，并验证技能的使用许可。
      # 调试期间，开发者可以考虑使用一个固定的字符串来进行校验，以便于修改代码。
      # 因为Python脚本源码下发到设备上较容易篡改，对于商用技能，建议开发者使用C++进行开发。
      # 注意：正式发布的技能不应使用硬编码的字符串来校验！
      return "hello"
  def main():
      # 初始化HiLens
      rc = hilens.init(verify())
      # 如果在技能开发调试阶段不想用此功能，那么直接填写一个静态字符串即可
      # 如: hilens.init("hello")
      if rc != 0: 
         hilens.error("Failed to initialize HiLens")
         return 
     # 业务代码
      pass
      # 完成后，清理资源
      hilens.terminate()
  if __name__ == '__main__':
      main()
  ```
  
 
