相关疑难解决方法(0)

为什么在Python中进行功能编程?

在工作中,我们习惯以非常标准的OO方式编写Python.最近,有几个人加入了这个功能性的潮流.他们的代码现在包含更多的lambda,map和reduce.我知道函数式语言对并发性有好处,但Python函数编程真的有助于并发吗?我只是想了解如果我开始使用更多Python的功能,我会得到什么.

python functional-programming

35
推荐指数
6
解决办法
3605
查看次数

Python 函数 - 将完整的 if 条件作为参数传递

在 Python 中是否可以仅在必要时将某个条件作为参数传递给函数?例如:一个完整​​的 if 条件:

  # /!\ checking if customer_name is NULL (NOT NULL field in destination database)
  if row['customer_name'] == NULL:
    row['customer_name'] = row['contact_name']
Run Code Online (Sandbox Code Playgroud)

我正在编写一个脚本,它将自动将数据从 mysql 迁移到 postgresql。有些表在两个数据库(源和目标)中具有相同的结构,有些表在结构上不同,而有些表只有数据类型不同。

我试图了解是否可以在函数内部“注入”一个条件,以便对上面提到的所有 3 种情况使用相同的代码段,条件每次都会不同。

以下是一个示例(我正在调查注入可能性的代码段为黄色 -> 将其作为参数传递):

def migrate_table(select_query, insert_query, tmp_args):
  # Cursors initialization
  cur_psql = cnx_psql.cursor()

  cur_msql.execute(select_query)

  args = []
  for row in cur_msql:

    # /!\ checking if customer_name is NULL (NOT NULL field in destination database)
    if row['customer_name'] == NULL:
      row['customer_name'] = row['contact_name']
      args.append(cur_psql.mogrify(tmp_args, row))
    args_str = ','.join(args)

  if len(args_str) …
Run Code Online (Sandbox Code Playgroud)

python parameters if-statement function

2
推荐指数
1
解决办法
7339
查看次数