问题标签 [class-instance-variables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
44 浏览

ruby - Ruby类变量范围问题

好的,所以我已经阅读了 Ruby 中的类变量、类实例变量和实例变量。我发现Phrogz 的这个解释很有启发性。

现在我正在尝试向我的类中添加一个变量,该变量可由我的类中的多个方法访问,但它不在类的多个实例之间共享:

我想要的是这个:( 就像@my_thingsPhrogz 的例子中)

我是否正确假设,目前我正在定义 4 个不同@index_changed的变量,每个变量都在它们各自方法的范围内,但对类的其余部分不可见?

但是,如果我将@index_changed方法之外的变量声明为类实例变量,那么它不会在类实例之间共享吗?

0 投票
0 回答
29 浏览

python - python类变量可以用作类变量和实例变量吗?

使用 Django Framework 和 Djano Framework 的模型后,我很困惑

正如我们所见,first_name、last_name 和 email_address 被创建为类变量,但在 dunder str () 方法中,它们与 self 作为实例变量一起使用

所以我的问题是在声明为类变量的 Python 变量中是否可以同时用作“类变量”和“实例变量”。

提前感谢您并感谢您阅读我的问题。

0 投票
2 回答
133 浏览

ruby-on-rails - 在 Rails 中为布局类实例变量选择控制器

我有一个 DateTime 类实例变量@current_year = DateTime.now.year,我已将其设置为页脚部分。这个部分是在我的几个客户端页面上呈现的(以及在<%= render 'layouts/page_footer' %>页面主体中的多个控制器上 - layout/application.html.erb 页面保留用于站点导航,因此格式不会在那里适应它。虽然我可以为它出现在控制器中的每个页面方法声明它,我会发现一些更干燥的东西。是否有一个地方可以定义我的时间变量以在我的布局组件中调用?

0 投票
1 回答
262 浏览

ruby - instance_variable_set 没有在实例中设置正确的变量

我有一个使用 Ruby 测试的 API 端点。我有 8 个测试,如下所示:

当您 POST 到 时/api/endpoint/,它会生成一个RateLimit包含validate_rate?方法的类,并使用一个实例变量,@timestamp该实例变量是调用 API 时的时间戳数组。

RateLimit将包含以下@timestamp实例变量以及以下validate_rate?将与之进行比较的时间戳示例。

但是,在每次测试运行之前,我必须清除@timestamp数组,否则数组将包含以前测试的时间戳,这当然会破坏测试结果

因此,我尝试@timestamp在每次测试运行之前以before块的形式将数组设置为新数组。

我目前遇到的问题是,由于该RateLimit实例不是在此测试中专门创建的,所以当我调用 时,如果这有意义post /api/endpoint/,我似乎无法设置变量。@timestamp它确实将 a 设置@timestamp[],但它没有设置在我运行实际测试时创建的特定实例

我想保持@timestamp私有,所以我不想创建一个让我获取或设置这个私有变量的方法,所以我唯一的选择似乎是instance_variable_set.

0 投票
1 回答
124 浏览

java - 为什么静态绑定的方法不涉及类的 CIR(类实例记录)而动态绑定的方法是?

我在 Sebesta 中读到静态绑定方法不需要存储在 CIR 中,但我不知道为什么。如果它没有存储在 CIR 中,编译器如何知道引用了哪个静态绑定方法以及存储在哪里?

0 投票
0 回答
57 浏览

python - 在 python 中作为模块调用时,类如何继承 tk.frames

我是一个tk新手,在导入类和让它们继承框架时遇到了麻烦。如果我将所有代码堆叠在一个文件中,它就可以工作。类似的东西(我在 Github 上找到了这个,抱歉没有注明出处),

但是,如果我尝试分解代码以便可以在目录和子目录中导入模块,则会出现错误,因为我不明白如何传递帧。例如,如果我将 Clock 类放在一个文件中modules/clock/Clock.py(是​​的,我包含__init__.py在所有目录中)并将代码更改为

我得到错误

如何设置代码以便将代码分解为模块并传递 tk.Frame?

0 投票
0 回答
94 浏览

c++ - c++中的层次抽象

我的代码中有以下抽象:

现在,当我声明 C 类的一个实例时,一切正常。问题是当我在一个函数(带有新的)中声明类 C 并将它作为指针返回时。我没有收到任何错误,但似乎该对象不具备 A 类的特征。是否可以在函数中执行此操作?

0 投票
1 回答
192 浏览

django - Django 字段实例覆盖彼此的参数

我正在测试和准备一个新的 Django 包,用于在 Django ORM 和 DRF 中使用带有 Text 和 Char 字段的漂白剂。然而,我遇到了一些障碍,它让我停下来想知道我是否真正理解模型字段是如何实例化的。希望有人可以解决这个问题。

我通过从 django.conf.settings 加载默认设置字典来初始化漂白的参数,然后检查 field_args 参数以查看是否已针对特定字段定义覆盖任何参数,如下所示。然后在 pre_save 函数中使用它来调用漂白:

我遇到的问题是self.args模型上所有字段的值似乎是模型上加载的最后一个字段的值。例如,在这个模型上:

在这个模型body上,作为模型最后一个字段的字段覆盖了它之前的所有 BleachCharField 和 BleachedTextField 实例的 self.args,因此它们都采用相同的参数。

我错过了什么吗?self.args 不是被添加到字段中,而是被添加到模型实例中吗?这就是为什么最后一个字段设置会覆盖所有字段设置的原因吗?我应该怎么做才能避免这个问题?

更新:

为了更加清晰,我添加了 BEACHFIELDS 默认字典和 PERMISSIVE_BLEACHFIELDS 字典:

0 投票
2 回答
138 浏览

ruby - 为每个子类创建父类变量的新实例

我有这个父类:

我正在尝试像这样创建两个子类:

我的印象是这些子类中的每一个都有自己的@@list类变量。但是,我明白了:

这意味着子类共享@@list父类的。

如何为每个子类创建一个单独的类变量而不重复?

0 投票
1 回答
652 浏览

ruby - 为什么 Struct/Class 实例的相等检查不同?

我不明白结构和类相等检查之间的区别。由于 Struct 和 Class 都从 Kernel 获取它们的#hash,但它们的行为似乎不同。

我知道 instance.hash 将为每个类实例产生不同的结果。与类实例 [Foo, Object, Kernel, BasicObject] 相比,Struct 实例具有不同的祖先 [Customer, Struct, Enumerable, Object, Kernel, BasicObject]。是什么真正导致每个 Class 实例具有不同的哈希数

Struct 和 Class 都使用 Kernel 来生成 hash_number。为什么 Class 的不同实例会产生不同的 hash int 而 Struct 实例会产生相同的 hash int?