对于将参数从父函数传递给嵌套函数Python感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍python将函数作为参数传递,并为您提供关于android–将参数传递给嵌套的导航架构组件图、c#–
对于将参数从父函数传递给嵌套函数Python感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍python将函数作为参数传递,并为您提供关于android – 将参数传递给嵌套的导航架构组件图、c# – Autofac将参数传递给嵌套类型、Excel VBA将参数传递给Python脚本、golang函数嵌套函数参数传递的有用信息。
本文目录一览:- 将参数从父函数传递给嵌套函数Python(python将函数作为参数传递)
- android – 将参数传递给嵌套的导航架构组件图
- c# – Autofac将参数传递给嵌套类型
- Excel VBA将参数传递给Python脚本
- golang函数嵌套函数参数传递
将参数从父函数传递给嵌套函数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 – 将参数传递给嵌套的导航架构组件图
如何将参数传递给嵌套的导航架构组件图?
假设我构建导航图以从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将参数传递给嵌套类型
嵌套类型:
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));
如果这是解决方案,如果类型嵌套得更深,会发生什么?难道这至少打败了依赖注入的一些目的吗?
解决方法
话虽这么说,您可以利用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脚本
我知道了。在Python脚本中,我从位置参数切换为可选参数。结果,我需要发送这样的参数
PythonArgs = "--arg1 1 --arg2 1"
golang函数嵌套函数参数传递
go函数可以嵌套,内嵌函数可以访问外部函数变量。参数传递方式包括:按值传递(复制值)、按引用传递(传递地址)。嵌套函数和参数传递在实际应用中,如计算数组平均值,通过按引用传递来修改外部变量,实现灵活的数据处理。
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 }
以上就是
今天的关于将参数从父函数传递给嵌套函数Python和python将函数作为参数传递的分享已经结束,谢谢您的关注,如果想了解更多关于android – 将参数传递给嵌套的导航架构组件图、c# – Autofac将参数传递给嵌套类型、Excel VBA将参数传递给Python脚本、golang函数嵌套函数参数传递的相关知识,请在本站进行查询。
本文标签: