gpt4 book ai didi

python - 类定义中未声明的 Python 变量的 Ruby 模拟是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 07:24:57 24 4
gpt4 key购买 nike

我可以在 Python 的类实例中存储类定义中未声明的任意数量的变量。

我怎样才能在 Ruby 中做这样的事情?

class C:
pass

a = C()
b = C()
a.a = 1
a.b = 2
b.test1 = 11
print a.a, a.b, b.test1

最佳答案

除非您的用例比呈现的更多,否则这似乎是使用 OpenStruct 的好地方:

require 'ostruct'

a = OpenStruct.new
b = OpenStruct.new

a.a = 1
a.b = 2
b.test1 = 11

[a.a, a.b, b.test1]
# => [1, 2, 11]

根据您的用例,您可能更喜欢:

require 'ostruct'

class C < OpenStruct
# You may want stuff in here...
end

a = C.new
b = C.new

a.a = 1
a.b = 2
b.test1 = 11

[a.a, a.b, b.test1]
# => [1, 2, 11]

这两种使用 OpenStruct 的方式都与您的 Python 代码完全相似,但如果您不是严格需要它,那么其中一种方式似乎可以比 instance_variable_set 更干净地完成您想要的一切.

关于python - 类定义中未声明的 Python 变量的 Ruby 模拟是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16909330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com