GVKun编程网logo

将参数从父函数传递给嵌套函数Python(python将函数作为参数传递)

23

对于将参数从父函数传递给嵌套函数Python感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍python将函数作为参数传递,并为您提供关于android–将参数传递给嵌套的导航架构组件图、c#–

对于将参数从父函数传递给嵌套函数Python感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍python将函数作为参数传递,并为您提供关于android – 将参数传递给嵌套的导航架构组件图、c# – Autofac将参数传递给嵌套类型、Excel VBA将参数传递给Python脚本、golang函数嵌套函数参数传递的有用信息。

本文目录一览:

将参数从父函数传递给嵌套函数Python(python将函数作为参数传递)

将参数从父函数传递给嵌套函数Python(python将函数作为参数传递)

这是我的代码:

def f(x):
    def g(n):
        if n < 10:
            x = x + 1
            g(n + 1)
    g(0)

当我评估f(0)时,将出现错误“ x在分配之前被引用”。

但是,当我使用“ print x”代替“ x = x + 1”时,它将起作用。

似乎在g的范围内,我只能将x用作“使用事件”,而不能用作“绑定事件”。我想问题是f仅将x的值传递给g。

我是否正确理解?如果不是,有人可以解释为什么在引用之前未定义“ x = x + 1”的左侧吗?

谢谢

android – 将参数传递给嵌套的导航架构组件图

android – 将参数传递给嵌套的导航架构组件图

如何将参数传递给嵌套的导航架构组件图?

假设我构建导航图以从FragmentA导航 – >嵌套,其中嵌套包含FragmentB – > FragmentC …

如果这是一个纯粹的FragmentA – > FragmentB …图,我只想用FragmentADirections.actionFragmentAToFragmentB(argument = foo)设置导航.但是一旦你转动B – >该动作就会采用零参数; C进入嵌套…

那我该怎么办?

解决方法:

全局操作可能是一种方式,但是一旦我将嵌套图形提取到它自己的.xml,我就没有按照我想要的那样工作.但结果却令人尴尬 – 只需在代码中手动添加参数即可.

与该问题相关的一个例子是:

将嵌套图保存到nested_graph.xml,它看起来像

<navigation
    android:id="@+id/nested_graph"
    app:startDestination="@id/fragmentB"
    ...>

    <fragment 
        android:id="@+id/fragmentB"
        ...>
        <argument
            android:name="foo"
            app:argType="integer"/>
        <action 
            ... // navigation action to FragmentC />
    </fragment>

    <fragment ...  // FragmentC stuff
</navigation>

要从不同的图中将参数传递给nested_graph.xml,请说root_graph.xml

<navigation
    android:id="@+id/root_graph"
    app:startDestination="@id/fragmentA"
    ...>

    <fragment 
        android:id="@+id/fragmentA"
        ... >
        <action
            android:id="@+id/action_fragmentA_to_nested_graph"
            app:destination="@id/nested_graph">
            <argument
                android:name="foo"
                app:argType="integer"/>
        </action>
    </fragment>
    <include app:graph="@navigation/nested_graph"/>
</navigation>

换句话说,只需添加相同的<参数... />您希望在nested_graph中收到的root_graph操作.

c# – Autofac将参数传递给嵌套类型

c# – Autofac将参数传递给嵌套类型

我在我的WCF服务中使用Autofac作为我的IoC.我有一种情况,我想将一个对象传递给嵌套类型(即一种未直接解析的类型,但在解析另一种类型时).据我所知,将此对象作为构造函数参数传递是Autofac中的首选方法.以下是这种情况的一个例子.

嵌套类型:

public class EventLogger<T> : IEventLogger<T>
{
    public EventLogger(IRepository<T> repository,User currentUser) { ... }  
}

我实际上试图解决的类型:

public class SomeBusinessObject  
{  
    public SomeBusinessObject(IEventLogger<SomeLogEventType> logger,...) { ... }  
}

注册:

var builder = new ContainerBuilder();
builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>));
builder.RegisterGeneric(typeof(EventLogger<>)).As(typeof(IEventLogger<>));
builder.RegisterType<SomeBusinessObject>();

解析我的WCF服务操作:

var currentUser = GetUserFromServiceContext();  
var bo = lifetimeScope.Resolve<SomeBusinessObject>();

我应该如何以及在何处将当前用户传递给我的记录器?我是否应该假设WCF操作必须知道解析SomeBusinessObject需要首先解析IEventLogger并在解析SomeBusinessObject时传递已解析的实例?这样的事情(原谅我,如果这不起作用,这只是一个想法):

var currentUser = GetUserFromServiceContext();  
var logger = lifetimeScope.Resolve<IEventLogger<SomeLogEventType>>(new NamedParameter("currentUser",currentUser));  
var bo = lifetimeScope.Resolve<SomeBusinessObject>(new NamedParameter("logger",logger));

如果这是解决方案,如果类型嵌套得更深,会发生什么?难道这至少打败了依赖注入的一些目的吗?

解决方法

恕我直言,我认为你违反了IOC的一个原则,因为组件不应该知道它的依赖关系的依赖性.在您的情况下,容器不知道SomeBusinessObject依赖于User.

话虽这么说,您可以利用Autofac的Delegate Factories.您可以手动注册Func< User,SomeBusinessObject>从客户端代码隐藏依赖关系链详细信息:

var builder = new ContainerBuilder();
builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>));
builder.RegisterGeneric(typeof(EventLogger<>)).As(typeof(IEventLogger<>));
builder.RegisterType<SomeBusinessObject>();

builder.Register<Func<User,SomeBusinessObject>>(c => {
    // Autofac should be able to resolve these Func<> automatically:
    var loggerFactory = c.Resolve<Func<User,IEventLogger<SomeLogEventType>>>();
    var sboFactory = c.Resolve<Func<IEventLogger<SomeLogEventType>,SomeBusinessObject>>();

        // Now we can chain the Funcs:
    return u => sboFactory(loggerFactory(u));
});

现在在您的客户端代码中,您可以:

var currentUser = GetUserFromServiceContext();  
var sboFactory = lifetimeScope.Resolve<Func<User,SomeBusinessObject>>();
var bo = sboFactory(currentUser);

另外,我认为lamba / Func支持是使Autofac成为最佳IOC容器的原因.如果你知道如何编写Func,你可以做一些疯狂的强大的事情.

Excel VBA将参数传递给Python脚本

Excel VBA将参数传递给Python脚本

我知道了。在Python脚本中,我从位置参数切换为可选参数。结果,我需要发送这样的参数

PythonArgs = "--arg1 1 --arg2 1"

golang函数嵌套函数参数传递

golang函数嵌套函数参数传递

go函数可以嵌套,内嵌函数可以访问外部函数变量。参数传递方式包括:按值传递(复制值)、按引用传递(传递地址)。嵌套函数和参数传递在实际应用中,如计算数组平均值,通过按引用传递来修改外部变量,实现灵活的数据处理。

golang函数嵌套函数参数传递

Go 函数嵌套函数参数传递

Go 中的函数可以嵌套,这意味着一个函数可以定义在另一个函数内部。嵌套函数可以访问外部函数的变量,但反之则不行。

语法

立即学习“go语言免费学习笔记(深入)”;

嵌套函数的语法如下:

func outerFunction(args ...) {
  func innerFunction(args ...) {
    // 访问外部函数的变量
  }
}
登录后复制

参数传递

当嵌套函数被调用时,它的参数可以传递给外部函数。参数可以通过以下方式传递:

  • 按值传递:参数值被复制并传递给嵌套函数。
  • 按引用传递:参数的地址被传递给嵌套函数。

按值传递的示例:

func outerFunction(x int) {
  func innerFunction(y int) {
    fmt.Println(x + y) // 输出 x + y
  }

  innerFunction(10)
}

func main() {
  outerFunction(5) // 输出 15
}
登录后复制

按引用传递的示例:

func outerFunction(x *int) {
  func innerFunction(y *int) {
    *y += *x // 更改外部函数的变量 x
  }

  innerFunction(x)
}

func main() {
  x := 5
  outerFunction(&x)
  fmt.Println(x) // 输出 10
}
登录后复制

实战案例

以下是一个使用嵌套函数和按引用传递的实战案例:

func calculateAverage(data []int) {
  sum := 0

  // 内嵌函数用于计算数组中的每个元素的总和
  func sumArray(data []int) {
    for _, v := range data {
      sum += v
    }
  }

  sumArray(data)
  return float64(sum) / float64(len(data))
}

func main() {
  data := []int{1, 2, 3, 4, 5}
  fmt.Println(calculateAverage(data)) // 输出 3.0
}
登录后复制

以上就是golang函数嵌套函数参数传递的详细内容,更多请关注php中文网其它相关文章!

今天的关于将参数从父函数传递给嵌套函数Pythonpython将函数作为参数传递的分享已经结束,谢谢您的关注,如果想了解更多关于android – 将参数传递给嵌套的导航架构组件图、c# – Autofac将参数传递给嵌套类型、Excel VBA将参数传递给Python脚本、golang函数嵌套函数参数传递的相关知识,请在本站进行查询。

本文标签: