小编the*_*fee的帖子

Python内存安全吗?

随着 Deno 成为 Node.js 的新竞争对手,许多新闻文章都提到了 Rust 的内存安全特性,其中一篇特别的文章指出 Rust 和 Go 因其内存安全特性而受益,Swift 和 Kotlin 也是如此但后两者并没有广泛用于系统编程。

Safe Rust 是真正的 Rust 编程语言。如果您所做的只是编写 Safe Rust,您将永远不必担心类型安全或内存安全。您永远不会忍受悬空指针、释放后使用或任何其他类型的未定义行为。

这激起了我的兴趣,想了解 Python 是否可以被视为内存安全,如果是或否,安全或不安全的程度如何?

从一开始,维基百科上关于内存安全的文章就没有提到Python,而关于Python的文章似乎只提到了内存管理。我最接近找到答案的是Daniel 的这个

维基百科文章将类型安全与内存安全相关联,这意味着同一内存区域不能作为整数和字符串进行访问。这样Python就是类型安全的。您不能隐式更改对象的类型。

但即便如此,这似乎也仅仅暗示了两个方面之间的联系(使用维基百科的关联,这又是有争议的),并且对于 Python 是否可以被视为内存安全没有明确的答案。

python memory-management python-3.x memory-safety

12
推荐指数
1
解决办法
5605
查看次数

为什么有些方法只接受块作为Ruby中的参数?

方法喜欢maps并且collect只接受块.如果块不是对象而不能保存到变量,那么为什么这些方法需要它们作为参数?

multiples_of_2 = Proc.new do |x|
  x % 2 == 0
end    
sq = Proc.new { |x| x ** 2 }

(1..50).to_a.select(&multiples_of_2) # => works properly
(1..50).to_a.select(multiples_of_2) # => `wrong number of arguments(1 for 0)`
[4, 5, 6].map!(sq) # => `wrong number of arguments(1 for 0)`
[10, 12, 14].collect!(sq) # => `wrong number of arguments(1 for 0)`
Run Code Online (Sandbox Code Playgroud)

ruby arguments

1
推荐指数
1
解决办法
73
查看次数