我希望我的类返回一个 Integer 实例,就像您覆盖__str__But Integer 类型时一样。我不明白为什么下面的代码不起作用。
class A:
def __init__(self):
global x
x=5
def __new__(cls):
return x
print(A())
#it says: NameError: global name 'x' is not defined
Run Code Online (Sandbox Code Playgroud) 所以可以说我有一个Car如下所示的类:
class Car(object):
"""Car example with weight and speed."""
def __init__(self):
self.weight = None
self.speed = None
Run Code Online (Sandbox Code Playgroud)
如果我将 a 初始化Car为空对象:
red_car = Car()
Run Code Online (Sandbox Code Playgroud)
我添加了一个speed和一个weight:
red_car.speed = 60
red_car.weight = 3500
Run Code Online (Sandbox Code Playgroud)
一切都很好,但是如果我想在尝试将这些变量添加到实例时运行一个函数怎么办?像这个功能:
def change_weight(self, any_int):
return (any_int - 10)
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试向对象添加特定实例变量时,我希望它自动运行此函数。如果可能,我希望它change_weight仅在weight实例变量上运行。
我是否正确理解这一点,还是应该单独通过函数运行整数,然后手动添加到对象中?
在下面的函数中,'graph' 是一个由 1、0 和 '2'(分别是障碍物、开放区域和目标)组成的 2d 网格列表,'start' 是开始搜索的点。
def bfs(图形,开始):
fringe = [[start]]
# Special case: start == goal
if start.val == 'g':
return [start]
start.visited = True
# Calculate width and height dynamically. We assume that "graph" is dense.
width = len(graph[0])
height = len(graph)
# List of possible moves: up, down, left, right.
moves = [(-1, 0), (1, 0), (0, -1), (0, 1)]
while fringe:
# Get first path from fringe and extend it by possible moves.
path …Run Code Online (Sandbox Code Playgroud) 我不知道如何在课堂上获取当前实例。
class Basic(object):
def __init__(self, val):
self.val = val
def current_ins(self):
???
Run Code Online (Sandbox Code Playgroud)
有没有办法val在python中获取当前实例?谢谢。
我有一些初始化代码,它们应该在创建类的新实例时运行,而不必调用.我该怎么办?
更新:
class Pice {
public int Type;
public void init() {
Type = random(sudo);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我希望init在创建类的实例时只运行一次.那我该把它放在哪里呢?
以下问题是在 JavaScript 面试中提出的。
创建一个类的 3 个实例后,如何防止进一步创建实例?
答案是什么?
我需要跟踪在该类中创建了多少个类的实例。我需要每个实例本身就知道它是“哪一个”。
我能想到的唯一方法是使用全局变量但是......可能有更好的方法。
这是我想避免的:
class MyClass {
this.instanceId = (window.instanceCount == undefined) ? 0 : window.instanceCount + 1;
window.instanceCount = this.instanceId;
...
}
Run Code Online (Sandbox Code Playgroud) 我面临以下问题:我在一个模块中定义了一个类型类的多个实例,但不想导出所有这些实例。我怎样才能做到这一点?
module SomeModule
( calculate
)
where
class Something a where
calculate :: a -> Int
instance Something Double where
calculate x = calculate $ roundToInt x
instance Something Int where
calculate x = doSomething x
roundToInt :: Double -> Int
roundToInt = round
doSomething :: Int -> Int
doSomething _ = 42
Run Code Online (Sandbox Code Playgroud)
在这个(简化的)示例中,我有两个Something相互依赖的类型类实例,但我只想导出Doubles 而不是Ints的实例。但在我的示例中,两个实例都被隐式导出。有办法解决吗?
我来自 python 背景,试图学习类似 java 的语言。这是用 dart 编写的,用于颤振。
当我尝试运行以下命令时出现错误。
class _MyGameState extends State<MyGame> {
int _numberOfTeams = 4;
List<int> _teamPoints = List.filled(_numberOfTeams, 0);
Run Code Online (Sandbox Code Playgroud)
我得到的错误信息是:
无法在初始化程序中访问实例成员“_numberOfTeams”。尝试用不同的表达式替换对实例成员的引用
为什么会这样,如何避免呢?(显然,这个例子被简化了,我可以很容易地简单地省略变量_numberOfTeams并规避问题,但这不是重点。)
(这里有很多非常相似的问题。这些问题的所有答案都提供了解决特定问题的方法,但不是“为什么”会出现问题或在用这种常见的语言写作时如何思考。一些相关的搜索我可以查看的词,或者指南/教程/文章的链接将不胜感激:)
这是Goodrich所著《Java 中的数据结构和算法》一书中的文本,在第一章中给出了使用该关键字的原因。this
允许一个构造函数体调用另一个构造函数体。当一个类的一个方法在当前实例上调用同一个类的另一个方法时,这通常是通过使用另一个方法的(非限定)名称来完成的。但是调用构造函数的语法很特殊。Java 允许将关键字 this 用作一个构造函数体内的方法,以便调用具有不同签名的另一个构造函数。
为什么它说另一种方法的名称不合格?