【问题标题】:Python script A has inputs and outputs. Script B has a class structure and functions. Pythonic solution for A to call on B using A variables?Python 脚本 A 有输入和输出。脚本 B 具有类结构和功能。 A 使用 A 变量调用 B 的 Pythonic 解决方案?
【发布时间】:2022-12-08 01:42:59
【问题描述】:

我有许多独特的“A”脚本,它们在脚本“B”中都使用相同的类和函数结构。

理想的 Python 脚本 A

import idealB

biglist = ['alpha', 'beta', 'gamma', 'delta']
uniquelist1 = ['beta', 'delta']
uniquelist2 = ['alpha', 'gamma']

master(input):
     idealB.classfromB.functionfromB(input)

for i in biglist:
     master(i)

export data

理想的 Python 脚本 B

class classfromB:
     def __init__(self, data1, data2):
          self.data1 = data1
          self.data2 = data2

     def functionfromB(input):
          if input in uniquelist1:
                do stuff
          elif input in uniquelist2:
                do different stuff
     

当我尝试运行这样的东西时,我得到以下信息:

NameError: name 'uniquelist1' is not defined

脚本 A 正确调用脚本 B,但脚本 B 没有定义的“uniquelist1”,因此它抛出名称错误。我如何让脚本 A 调用脚本 B 中的类和函数来处理脚本 A 中定义的变量?

脚本 B 是对函数进行调整和编辑的地方,但脚本 A 有几个不同的版本,所以我希望能够只编辑脚本 B 并调用它。我当前但乏味的解决方案是将所有 B 复制并粘贴到每个 A 脚本中,它运行良好,尽管它并不优雅。任何帮助将不胜感激!

【问题讨论】:

    标签: python list variables global-variables


    【解决方案1】:

    重新定义您的函数以将 uniquelist1 作为输入。所以在脚本 B 中,而不是 def functionfromB(input):执行def functionfromB(input, uniquelist1):并在脚本A中将idealB.classfromB.functionfromB(input)替换为idealB.classfromB.functionfromB(input, uniquelist1)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-16
      • 2018-06-27
      • 2018-07-15
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 2016-07-30
      相关资源
      最近更新 更多