首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ruby-读取另一个类中变量的值?

在Ruby中,要读取另一个类中变量的值,可以使用访问器方法或实例方法来实现。

  1. 访问器方法(Accessor Method):通过定义读取方法来获取另一个类中变量的值。在Ruby中,可以使用attr_readerattr_accessor来自动生成读取方法。
  • attr_reader:生成只读的访问器方法,可以读取另一个类中的变量值。
  • attr_accessor:生成可读写的访问器方法,可以读取和修改另一个类中的变量值。

示例代码如下:

代码语言:ruby
复制

class AnotherClass

代码语言:txt
复制
 attr_reader :variable
代码语言:txt
复制
 def initialize
代码语言:txt
复制
   @variable = "Hello"
代码语言:txt
复制
 end

end

class MyClass

代码语言:txt
复制
 def initialize
代码语言:txt
复制
   @another_class = AnotherClass.new
代码语言:txt
复制
 end
代码语言:txt
复制
 def read_variable
代码语言:txt
复制
   @another_class.variable
代码语言:txt
复制
 end

end

my_object = MyClass.new

puts my_object.read_variable

代码语言:txt
复制

输出结果为:Hello

在上述示例中,AnotherClass类中的variable变量使用attr_reader生成了读取方法。在MyClass类中,通过创建AnotherClass对象,并调用read_variable方法来读取AnotherClass中的variable变量的值。

  1. 实例方法(Instance Method):通过定义方法来获取另一个类中变量的值。在Ruby中,可以在方法中直接访问另一个类的实例变量。

示例代码如下:

代码语言:ruby
复制

class AnotherClass

代码语言:txt
复制
 def initialize
代码语言:txt
复制
   @variable = "Hello"
代码语言:txt
复制
 end
代码语言:txt
复制
 def get_variable
代码语言:txt
复制
   @variable
代码语言:txt
复制
 end

end

class MyClass

代码语言:txt
复制
 def initialize
代码语言:txt
复制
   @another_class = AnotherClass.new
代码语言:txt
复制
 end
代码语言:txt
复制
 def read_variable
代码语言:txt
复制
   @another_class.get_variable
代码语言:txt
复制
 end

end

my_object = MyClass.new

puts my_object.read_variable

代码语言:txt
复制

输出结果为:Hello

在上述示例中,AnotherClass类中定义了get_variable方法,通过该方法直接返回@variable实例变量的值。在MyClass类中,通过创建AnotherClass对象,并调用read_variable方法来读取AnotherClass中的variable变量的值。

无论是使用访问器方法还是实例方法,都可以实现读取另一个类中变量的值。具体选择哪种方式取决于具体的需求和设计。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java定义全局变量方法_java调用另一个变量

大家好,又见面了,我是你们朋友全栈君。 “java全局变量应该放哪儿? ”引发争论 1、单独写一个final,在里面定义final static全局变量,在其它程序里包含进来就可以了。...2、任何static public成员变量都是全局共享。...3、JAVA不应该有所谓全局变量概念,全局变量严重影响了封装和模块化,所以如果你程序需要所谓全局变量,那一定是你对程序设计出了问题。...5、FINAL STATIC应该理解为常量,而不是“全局变量”,它目的不是为了让你每个都可以访问,而是独立于具体对象,抽象到层次东东。...以上争论焦点是:public static final 类型 变量 是否属于所谓“全局变量”不得而知。它只不过实现了全局意图。我们要用到该变量时,只需要把该变量所在引用进来就可以了。

2.6K20
  • tensorflow从ckpt和从.pb文件读取变量方式

    (1) 从保存ckpt读取变量(以读取保存第一个权重为例) from tensorflow.python import pywrap_tensorflow import tensorflow...pb文件读取变量(以读取保存第一个权重为例) import tensorflow as tf from tensorflow.python.framework import graph_util...has_tensor(var_name) – 允许检查变量是否存在于检查点中 get_tensor(var_name) – 返回变量名称张量 为了便于说明,我将定义一个函数来检查路径有效性,并为您加载检查点读取器...这是一种方便方法,允许您检查ckeckpoint是否存在相关变量。...initialized with recovered values and the following shape: (3, 3, 3, 64) 以上这篇tensorflow从ckpt和从.pb文件读取变量方式就是小编分享给大家全部内容了

    3.6K20

    java变量默认初始

    参考链接: Java变量 对于成员变量   不管程序有没有显示初始化,Java  虚拟机都会先自动给它初始化为默认。   ...1、整数类型(byte、short、int、long)基本类型变量默认为0。   2、单精度浮点型(float)基本类型变量默认为0.0f。   ...3、双精度浮点型(double)基本类型变量默认为0.0d。   4、字符型(char)基本类型变量默认为 “/u0000”。   5、布尔性基本类型变量默认为 false。   ...6、引用类型变量是默认为 null。   7、数组引用类型变量默认为 null。...当数组变量实例后,如果没有没有显示为每个元素赋值,Java 就会把该数组所有元素初始化为其相应类型默认

    5.5K40

    linux利用read命令获取变量

    前言 本文主要给大家介绍了关于linux利用read命令获取变量中值相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细介绍吧。...read常用用法如下: read -[pstnd] var1 var2 ......-p提示语句 -n 字符个数 -s 屏蔽回显 -t 等待时间 -d 输入分界 read来获取变量,是通过屏幕中等待用户输入,如果是用read命令从已知变量来获取值要如何操作呢?...比如说: input_ips=’127.127.127.10-127.127.127.14’,通过read命令分别读取到start_ip, end_ip两个变量?...,希望本文内容对大家学习或者工作能带来一定帮助,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn支持。

    4.3K30

    Python读取excel文件带公式实现

    在进行excel文件读取时候,我自己设置了部分直接从公式获取单元格 但是用之前读取方法进行读取时候,返回为空 import os import xlrd from xlutils.copy...return rows,cols,path_name 查询之后发现普通读取不能直接读取带单元格。...手动写入公式并保存,再用openpyxl读取,能读取到公式结果。 代码写入公式/,需要手动打开Excel,并保存,再用openpyxl读取,就能读取到公式了。...运行下面代码后再进行读取,就能读取到数据/ from win32com.client import Dispatch def just_open(filename=file_name): xlApp...excel文件带公式实现文章就介绍到这了,更多相关Python读取excel公式内容请搜索ZaLou.Cn

    9.5K30

    linux删除export变量某个

    在Linux,如果你想要从export变量删除某个,可以使用以下方法:查看当前export变量在终端输入以下命令,查看当前export变量: echo $EXPORT_VARIABLE...删除变量某个如果你想从export变量删除某个,可以使用sed命令: export EXPORT_VARIABLE=$(echo $EXPORT_VARIABLE | sed 's/:<value...:以上命令中使用了斜杠(/)作为分隔符,因为要删除包含了斜杠。...验证变量是否已经被删除在终端输入以下命令,查看当前export变量是否已经被删除: echo $EXPORT_VARIABLE 如果输出结果不包含你要删除,则表示变量已经被成功删除...注意:以上命令只是在当前终端删除了export变量某个。如果你想要永久删除某个,需要将相关命令添加到~/.bashrc或.bash_profile文件

    1.4K10

    【PYTHON】论Python私有变量、共有变量、全局变量、局部变量

    如私有变量、共有变量、全局变量、局部变量等。这里给大家介绍Python(class)变量之间区别。...,而在__init__()构造方法long变量也是可以被对象f直接引用,这就是说全局变量是被当做一个属性来存放,在Python。    ...1.1.1 访问私有变量  对于上面代码定义两个私有变量,其他或者方法也不是不可以访问,只是稍微麻烦一些。...解释器也不会保存r。 ...代码定义fly变量以及构造方法long变量都是全局变量,因为在long之前加了一个self前缀,所有在整个,该long变量也是全局变量,至少在该类任何地方都可以访问到该变量

    4.3K20

    GDB读取动态库定义全局变量错误

    在应用程序调试时候设置了多个参数,但是随着多次调用getopt,全局变量optind通过gdb打印出来却总是1, 但是通过程序打印出来optind确实是逐步变化。...也就是动态库存在全局变量时候,在编译阶段已经在程序.BSS段预留了控件给动态库全局变量,然后当程序初始化时候,会拷贝动态库全局变量到程序预留.BSS段控件;其他所有的动态库,也将访问通过前面所说....BSS段全局变量来访问原先动态库定义全局变量。...回到原先问题,那么GDB打印出来并不是程序.BSS通过Copy Relocation产生全局变量optind, 而是打印libc.so中原有的变量。...

    2.1K30

    SpringBoot之读取配置文件自定义

    SpringBoot之读取配置文件自定义 概念:   一般来说,我们会在配置文件自定义一些自己需要,比如jwt密匙,或者一些FTP配置等信息 如何获取:   定义自己需要属性 ?...获取方式一:   使用Spring上下文中环境获取 ? ? 获取方式二:   使用@Value注解获取 ? ?...:   通过@ConfigurationProperties注解获取,指定前缀,自动映射成对象,@PropertySource可以指定配置文件,使用@ConfigurationProperties注解前提必须使用...经过测试可以得知三种方法都可以获取配置文件,其中都是可以组合使用,比如@ConfigurationProperties+@Value等互相组合 作者:彼岸舞 时间:2021\01\12 内容关于

    2.3K30

    Java 和对象,如何定义Java,如何使用Java对象,变量

    参考链接: Java对象和 1.对象概念 :万物皆对象,客观存在事物皆为对象  2.什么是面向对象:人关注一个对象,实际上是关注该对象事务信息   3.是模子,确定对象将会拥有的特征(...什么是对象属性:属性,对象具有的各种特征 ,每个对象每个属性都拥有特定  5.什么事对象方法:对象执行操作  6.与对象方法,属性联系和区别:是一个抽象概念,仅仅是模板,比如:“手机”...5    引用对象方法:对象.方法       phone.sendMessage() ; //调用对象senMessage()方法  成员变量和局部变量  1.成员变量     在定义,用来描述对象将要有什么...  2.局部变量      在方法定义,在方法临时保存数据  成员变量和局部变量区别  1.作用域不同:        局部变量作用域仅限于定义他方法        成员变量作用域在整个内部都是可见...  2.初始不相同:          Java会给成员变量一个初始          Java不会给局部变量赋予初始,必要初始化  3.在同一个方法,不允许有同名局部变量;  在不同方法

    6.9K00

    【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 | 在函数 间接修改 指针变量 | 在函数 间接修改 外部变量 原理 )

    文章目录 一、直接修改 和 间接修改 指针变量 二、在函数 间接修改 指针变量 三、在函数 间接修改 外部变量 原理 一、直接修改 和 间接修改 指针变量 ---- 直接修改 指针变量...= &a; 间接修改 指针变量 , 首先要 将 指针变量 地址 , 赋值给 1 个 二级指针 变量 , 通过 * 符号 , 间接修改 一级指针变量 ; // 将一级指针地址赋值给二级指针...间接修改 指针变量 ---- 在 函数 间接修改 指针变量 , 将 指向一级指针 二级指针 变量 , 传递到 函数形参 , 在 函数 , 使用 * 符号 , 修改 二级指针 指向...p2 = &p; // 间接修改指针 *p2 = 12345678; // 打印一级指针地址 printf("%d\n", p); // 在函数 ,...三、在函数 间接修改 外部变量 原理 ---- 如果要 修改 一级指针 , 必须 传入 指向 一级指针 二级指针 变量 才可以 , 传入一级指针变量 , 不能修改一级指针变量值 ; 这是因为

    21.2K11
    领券