函数可以不使用“ return”语句返回吗?

坡湾区

如果没有return语句,函数内部的任何更改都应该无法访问,对吗?

def my_fun(a):
    a[0] = 'new value:'     
    a[1] = a[1] + 1      

x = ['old value:', 99]
my_fun(x)
print (x[0], x[1])

我只是运行这段代码,并把它作为新值发布:100我正在使用python 3.6。还会以其他任何编程语言运行吗?

斜交

在Python中,参数是通过引用传递的,这意味着对它们的任何修改都将在调用后保留。但是,重新分配对象会更改引用的目标,并且无法保留任何后续修改。考虑以下示例:

def foo(bar):
    bar[0] = 2  # modification
    bar = []    # reassigment

x = [1]
print(x)
foo(x)
print(x)

输出:

[1]
[2]

有些对象(例如元组或整数)是不可变的,这意味着它们不能被修改,并且在尝试时会引发异常。必须重新分配它们才能修改它们。

这是特定于Python的。爪哇作用在一个表面上相似的方式,但是实现非常不同:对象由参考和携带修饰过通过,而简单的数据类型(intdoublechar等)被复制和修改不结转。C和C ++永远不会修改对象,保留对象修改的唯一方法是将对象上的指针传递给函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以不使用 make 函数创建频道吗?

return语句如何在函数中工作?我可以使用多个return语句吗?

是否可以“返回return语句”?

这是在函数中实现 return 语句的正确方法吗?我的函数不会返回值

C ++的内联函数中的return语句会实际返回并终止代码流吗?

当函数中的每个路径都有一个 return 语句时,不使用 else 语句是错误的吗?

与将返回值分配给函数相比,使用Return语句有什么区别吗?

我可以使用data.table而不使用merge()函数吗?

是否可以创建不使用Array构造函数或数组文字的Array.isArray()返回true的对象?

在Java中,可以将“引发异常”替换为“返回”语句吗?我应该将return语句放在哪里以获取返回值?

Python:我的函数需要返回语句吗?

即使到达return语句,函数也返回null

Java - 可以使用 return 语句退出程序吗?

在返回 void 的函数中调用返回 void 的函数的 return 语句

不使用ESC可以取消AT + CMGS吗?

WebApi POST可以不使用[FromBody]吗?

如何避免未使用的setState函数?可以在不使用setter的情况下创建React useState吗?

int类型的函数不使用返回C ++

不使用变量的返回函数

您可以在不使用数组的情况下将不同数量的相同类型的参数传递给函数吗?

我可以在不使用内置 print() 函数的情况下在 Apache Flink 中打印 DataSteam<T> 的各个元素吗

我可以在不使用 Objective-C(纯 Swift)的情况下向 React Native 公开 Swift 函数吗?

我可以在不使用 va_arg 函数的情况下遍历可变参数列表吗?

有没有一种方法可以不使用new返回函数的抽象(出于性能原因)

为什么我可以在不使用Java中返回值的情况下调用非空函数?

可以使用lambda函数来缩短此语句吗?

是否可以知道函数是否使用空的return语句?

我可以不使用if语句中的break来做到这一点吗?

我们可以不使用导入语句访问内置类吗?