gpt4 book ai didi

Ruby 轻松访问类变量

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:24 26 4
gpt4 key购买 nike

我创建了一个用于存储配置数据的类。目前类看起来像这样:

class Configed
@@username = "test@gmail.com"
@@password = "password"
@@startpage = "http://www.example.com/login"
@@nextpage = "http://www.example.com/product"
@@loginfield = "username"
@@passwordfield = "password"
@@parser = "button"
@@testpage = "http://www.example.com/product/1"
@@button1 = "button1"
def self.username
@@username
end
def self.password
@@password
end
def self.startpage
@@startpage
end
def self.nextpage
@@nextpage
end
def self.loginfield
@@loginfield
end
def self.passwordfield
@@passwordfield
end
def self.parser
@@parser
end
def self.testpage
@@testpage
end
def self.button1
@@button1
end
end

要访问我正在使用的变量:

# Config file
require_relative 'Configed'

# Parse config
startpage = Configed.startpage
loginfield = Configed.loginfield
passwordfield = Configed.passwordfield
username = Configed.username
password = Configed.password
nextpage = Configed.nextpage
parser = Configed.parser
testpage = Configed.testpage

这不是很模块化。添加额外的配置数据需要在三个地方引用。

有没有更好的方法来完成这个?

最佳答案

你可以创建类级别的实例变量...

class Configed
@username = "test@gmail.com"
@password = "password"
@startpage = "http://www.example.com/login"
# ...
class << self
attr_reader :username, :password, :startpage # ...
end
end

它更紧凑一些,但仍然给你

username = Configed.username
# ...

注意:@philomory 的回答中有很多值得考虑的好主意。特别是使用 YAML 可以让您为不同的环境设置不同的常量 testdevelopmentproduction 等,您可以加载当前环境的配置选项转换为在初始化程序中创建的 OpenStruct。提供更灵活的解决方案。

关于Ruby 轻松访问类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40413761/

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