---
title: 通过注解创建UDF
description: "通过注解进行UDF开发的流程如下图所示："
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/others/dataflowdevg/dfdevp_23_0021.html
sourcePath: /source/zh/canncommercial/900/others/dataflowdevg/dfdevp_23_0021.html
indexId: f7b2188b98adf66521e826ae01f4fea3cf0a0684cb869e0f3cda4c77cd3db66a69
---
# 通过注解创建UDF

#### 开发流程

通过注解进行UDF开发的流程如下图所示：


#### 创建UDF

以实现add功能的函数为例，介绍如何通过注解dataflow.pyflow和dataflow.method来创建一个UDF，请参考如下示例：```
import dataflow as df

# 通过pyflow注解装饰普通函数，将普通函数构建为一个UDF
@df.pyflow()
def add(a, b):
    return a + b

# 通过pyflow注解装饰类，并使用method装饰类方法，将类方法构建为一个UDF
@df.pyflow
class Add():
    @df.method()
    def add(self, a, b):
        return a + b
```


#### 构建FlowGraph

通过注解构造完UDF后，通过fnode方法构造FlowNode并参与FlowGraph图的构造，示例如下：

```
# 定义输入
data0 = df.FlowData()
data1 = df.FlowData()

#定义FlowNode
flow_node0 = add.fnode()
flow_node1 = Add.fnode()

# 构建连边关系
flow_node0_out = flow_node0(data0, data1)
flow_node1_out = flow_node1.add(flow_node0_out, data1)

# 构建FlowGraph
dag = df.FlowGraph([flow_node1_out])
```
