定义函数和它';python中基于配置的s参数
我必须用类及其函数编写一个python脚本。功能参数应根据配置而变化。在“C”语言中,它可以使用#ifdef或#if宏实现 同样,我如何在python中实现。因为我在python中找不到任何替代#ifdef的东西。我想要像这样的东西定义函数和它';python中基于配置的s参数,python,python-3.x,Python,Python 3.x,我必须用类及其函数编写一个python脚本。功能参数应根据配置而变化。在“C”语言中,它可以使用#ifdef或#if宏实现 同样,我如何在python中实现。因为我在python中找不到任何替代#ifdef的东西。我想要像这样的东西 #ifdef MULTIPLE_APPLICATION def check_actions(self, machine, application_instance, error_limit) #else def check_actions(self, machine
#ifdef MULTIPLE_APPLICATION
def check_actions(self, machine, application_instance, error_limit)
#else
def check_actions(self, machine, error_limit)
.......
.......
python是一种纯OOP语言!没有#if宏。这里的想法完全不同。你可以用很多方法来解决它。其中一种简单的方法是定义外部函数和两个嵌套的内部函数,并调用其中一个与传递给外部函数的var相关的内部函数。见下文:
def check_action(application_stat, *args, **kwargs):
def check_single_app_action(*args, **kwargs):
#do some thing
return
def check_multi_app_action(*args, **kwargs):
#do some work
return
if application_stat=='single':
check_single_app_action(args, kwargs)
else:
check_multi_app_action(args, kwargs)
return
python是一种纯OOP语言!没有#if宏。这里的想法完全不同。你可以用很多方法来解决它。其中一种简单的方法是定义外部函数和两个嵌套的内部函数,并调用其中一个与传递给外部函数的var相关的内部函数。见下文:
def check_action(application_stat, *args, **kwargs):
def check_single_app_action(*args, **kwargs):
#do some thing
return
def check_multi_app_action(*args, **kwargs):
#do some work
return
if application_stat=='single':
check_single_app_action(args, kwargs)
else:
check_multi_app_action(args, kwargs)
return
Python“def”只是一个语句(“命令”),用于为函数对象指定名称。因此“def”可以像其他语句一样有条件地执行。您可以使用
if-else
station来执行此操作,但是在Python中不会这样做,您应该使用某种类型的默认参数。@faressalem我已经看到了对我的用例不有用的处理方法。调试是在编译过程中使用-o选项进行的,这在我的例子中是不存在的。@MichaelButscher您能详细说明一下吗。因为我是pythonA的初学者,Python“def”只是一个语句(“命令”),用于为函数对象指定名称。因此“def”可以像其他语句一样有条件地执行。您可以使用if-else
station来执行此操作,但是在Python中不会这样做,您应该使用某种类型的默认参数。@faressalem我已经看到了对我的用例不有用的处理方法。调试是在编译过程中使用-o选项进行的,这在我的例子中是不存在的。@MichaelButscher您能详细说明一下吗。因为我是初学者python@Cool_Binami,这是最接近c类代码的解决方案。为什么?因为对于这两个内部函数(check_multi_app_action和check_single_app_action),解释器在运行这段代码时根本不会构造它们,只有在if else中调用时,运行时构造函数才会构建它们并将函数绑定到它们的名称。所以,从面向对象的角度讲,我们构建对象并不是说我们需要它们(函数就是对象)是好的luck@Cool_Binami,这是最接近c类代码的解决方案。为什么?因为对于这两个内部函数(check_multi_app_action和check_single_app_action),解释器在运行这段代码时根本不会构造它们,只有在if else中调用时,运行时构造函数才会构建它们并将函数绑定到它们的名称。所以,从面向对象的角度讲,我们不需要构建对象来告诉我们需要它们(函数就是对象)。祝你好运