问题标签 [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 投票
2 回答
669 浏览

objective-c - 类实例变量的Objective-C模式?

对于可以被子类“覆盖”的类变量,Objective-C 中的一个很好的模式是什么?

常规类变量通常在 Objective-C 中使用文件本地静态变量以及定义为类方法的公开访问器来模拟。

但是,与任何 Class 变量一样,这意味着该值在该类及其所有子类之间共享。有时,子类只为自己更改值是很有趣的。这通常是使用类变量进行配置时的情况。

这是一个例子:在一些 iOS 应用程序中,我有许多给定的公共抽象超类(注释)的对象,它们有许多具体的变体(子类)。所有注释都用标签以图形方式表示,标签颜色必须反映其注释的特定种类(子类)。所以所有的Foo注解都必须有一个绿色的标签,所有的Bar注解都必须有一个蓝色的标签。在每个实例中存储标签颜色会很浪费(实际上,可能是不可能的,因为我有很多对象,并且每个实例共有的实际配置数据远大于单一颜色)。

在运行时,用户可以决定现在所有的 Foo 注释都将带有红色标签。等等。

由于在 Objective-C 中,类是实际的对象,这需要将 Foo 标签颜色存储在 Foo 类对象中。但这可能吗?这种事情的好模式是什么?当然,可以定义某种将类映射到其配置值的全局字典,但这有点难看。

0 投票
1 回答
487 浏览

ruby - Ruby中类似单例行为的单例模块或类方法+类实例变量?

我需要具有单例行为的类。

使用 Singleton 模块有什么区别...

...并使用类方法和类实例变量?

0 投票
4 回答
1926 浏览

python - 具有非无类属性的类的新实例?

我有一个 Python 类,它的类属性设置为None. 创建新实例时,对该属性所做的更改会在所有实例中持续存在。

这里有一些代码可以理解这一点:

正如人们所期望的那样,使用foo.areturns['item']foo.breturns 。5

当我创建一个新实例(我们将调用它bar)时,也使用bar.areturn['item']bar.breturn 5!但是,当我最初将所有类属性设置为None然后将它们设置为 in 时__init__,如下所示:

在返回和返回时使用bar.a返回和返回。[]bar.b2foo.a['item']foo.b5

这是它应该如何工作的?在我编写 Python 的 3 年里,我显然从未遇到过这个问题,希望得到一些澄清。我在文档中的任何地方也找不到它,所以如果可能的话,给我一个参考会很棒。:)

0 投票
4 回答
3438 浏览

python - 类实例的自动递增 ID

免责声明:这是我目前正在从事的一个学期项目。我的问题是关于实施级别的细节,而不是评分方案的一部分。我编写这段代码只是为了测试我为我将要写的论文提出的理论。

另外,我已经考虑了这个问题的答案,但运气不佳,所以请不要将其视为该问题的重复

问题

我有一个图表(G =(V,E))。在我的算法中的某个时刻,我需要通过将多个节点(例如 )“折叠”v_1, v_2, ..., v_n成一个节点(例如)来将其转换为超图(在某种意义上v)。在问题的上下文中,这意味着我需要更改边缘,以便更改任何和任何其他节点之间的E边缘,使得现在介于和之间。ev_1, v_2, v_nuVeuv

为了捕捉到任何一对节点之间现在可能存在多个不同的边,我需要为每条边创建一个唯一标识符。我试图通过 ID 来做到这一点,但我目前无法正确实施。

这是我尝试过的

但是,当我尝试实例化新边缘时,出现以下错误:

编辑

通过一些答案的建议,我已经能够修复实例化时间错误。但是,另一个错误仍然存​​在。这是我的代码和错误:

错误:

我会很感激任何帮助

谢谢

0 投票
2 回答
1722 浏览

ruby-on-rails - ActiveRecord 中的类实例变量(Ruby On Rails)

我试图在模型类中存储一个值,例如,几个复选框的值。

我想我可以将它们存储在类实例变量中,但是,当用户单击屏幕上的其他位置时,这些值会被清除。

如何维护我的类实例变量的值。

例如

但是,看起来@@age 在设置后是空的。

0 投票
3 回答
260 浏览

ruby - 在类和方法中定义类实例变量有什么区别。为什么?

嗯,如题所示,下面这两个类实例变量有什么区别

有没有人可以给我解释一下。非常感谢。

0 投票
1 回答
88 浏览

ruby - 在 Ruby 中为一组子类定义同一个类实例变量的访问器

我有一个超类和一组子类。在每个子类中,我定义了一个具有相同名称的类实例变量x。要为这些类之一创建访问器,我只需在子类定义中使用:

我想避免在我的所有子类定义中使用这些相同的代码行。但是如果我把它放在超类定义中,那么它不会为超类的实例变量定义一个访问器吗?那不是我想要的。有没有办法在一个地方为所有子类的类实例变量定义访问器?

0 投票
2 回答
4482 浏览

ruby - ruby 中的类可以使用@class_instance_variable 而不是@@class_variable 存储实例化对象的数量吗?

我试图在定义这些对象的类中记录给定类的对象实例的计数。

首先,我知道代码反射和 ObjectSpace.each_object,但我不希望使用反射并让类本身能够“照顾”自己。

我环顾四周,我发现的所有解决方案似乎都在类定义中使用了@@class_variables,例如,这个问题的公认答案:如何在 Ruby 中获取类实例?

不过,当我不断阅读时,我发现 ruby​​ 中的类变量在某些情况下表现得非常糟糕……最大的原因是:

在程序顶层定义的类变量被所有类继承。它的行为就像一个全局变量。

来源和更多信息在这里:http ://ruby.runpaint.org/variables#class

因此,我尝试编写一个类,该类使用类实例变量而不是类变量将其实例化对象的数量存储在自身内部,显然它似乎工作正常,但因为我仍在学习这种“深入”语言我想问你我写的代码是否正确和/或有意义:

我的一个疑问是,覆盖 Pizza.new 方法我“删除”了原始 .new 方法的一些重要功能?(原始的 .new 方法提供了什么?我如何使用反射“检查”方法代码?)我还做错了什么,或者我的方法完全错误,为什么?

谢谢

编辑:忘记添加这个重要的位:

作为一种更好地限制事物范围的方法,我希望 Pizza 类能够仅在对象实例化时进行计数,并且在其 @instance 类变量上没有 setter 方法,可以在代码中随时访问(Pizza.count = 1000)。这就是为什么我试图覆盖“新”。

我认为这是最棘手的部分,它让我问自己,我的方法是否朝着正确的方向前进,或者我是否应该停止过多依赖这些语言机制,而是给自己添加一些逻辑,让计数只有在Pizza 类已进入 ObjectSpace..

我只是在寻找更优雅、更不臃肿的方式来使用语言特性来获得它。

无论哪种情况,我们都将不胜感激..

再次感谢。

0 投票
1 回答
3121 浏览

c# - 访问实例化的密封类公共成员

我正在尝试sealed在我的程序中建立一个公共课程,

问题是,......因为我还是新鲜的尚未开发人员,我觉得这个问题有点困难......C# .net

对于 Question 中的问题,您可以直接跳到 Program example,或阅读以下背景:

DB_Schema 是namespace我创建的一个助手,用于处理数据访问

(它拥有tablesAnd SPs 的名字 ..etc')

它的一个类(下面)处理Stored Procedures,这个类包含 SP 参数的名称

  • 程序中的用法:

通过 SP 访问数据的方法内

尝试访问其中一个实例 ( SProcGetCpa) 成员是不可能的,我尝试过的方式。

我可以只上课+它不是SProc子类,而且...UpdateCPAReport sealed

但是当我在搜索问题“可以实例化密封类吗?

好吧..答案是肯定的......虽然试图找到有关错误的信息:

无法通过实例引用访问;改为使用类型名称来限定它

不会产生任何结果,也不是访问实例化sealed class公共成员代码的示例,至少不适用于像我这样的新 .net C#arpers

-更新

我想避免长行并为代表存储过程名称的字符串制作自定义短名称

代替

更新 2

对于寻求答案的这个主题的未来来者

正如我们一位亲爱的朋友所建议的,在 StackOverflow 中

如果你必须为你的类做一个简短的命名,在将它们用于当前 peoject 时:

把它放在你项目的usings中

0 投票
8 回答
147765 浏览

ruby - Ruby 类实例变量与类变量

我阅读了https://stackoverflow.com/questions/826734/when-do-ruby-instance-variables-get-set但我对何时使用类实例变量有两种想法。

类变量由一个类的所有对象共享,实例变量属于一个对象。如果我们有类变量,就没有多少空间可以使用类实例变量了。

有人可以解释这两者之间的区别以及何时使用它们吗?

这是一个代码示例:

更新:我现在明白了!类实例变量不沿继承链传递。