我得到一些我无法弄清楚的错误.任何线索我的示例代码有什么问题?
class B:
def meth(self, arg):
print arg
class C(B):
def meth(self, arg):
super(C, self).meth(arg)
print C().meth(1)
Run Code Online (Sandbox Code Playgroud)
我从"超级"内置方法的帮助下得到了示例测试代码."C"级是
这是错误:
Traceback (most recent call last):
File "./test.py", line 10, in ?
print C().meth(1)
File "./test.py", line 8, in meth
super(C, self).meth(arg)
TypeError: super() argument 1 must be type, not classobj
Run Code Online (Sandbox Code Playgroud)
仅供参考,这是来自python本身的帮助(超级):
Help on class super in module __builtin__:
class super(object)
| super(type) -> unbound super object
| super(type, obj) -> bound super object; requires isinstance(obj, type)
| super(type, type2) -> bound …Run Code Online (Sandbox Code Playgroud) 我只是想通知我实际上可以在$ _SESSION中存储对象,我发现它非常酷,因为当我跳转到另一个页面时,我仍然有我的对象.在我开始使用这种方法之前,我想知道它是否真的是一个好主意,或者是否存在潜在的陷阱.
我知道,如果我有一个单一的入口点,我就不需要这样做,但我还没有,所以我没有一个入口点,我真的想保留我的对象,因为我不我失去了我的状态.(现在我还读到我应该编写无状态站点,但我还不了解这个概念.)
因此,在短期:是否确定存储对象的会话,是否有任何问题,它?
编辑:
临时总结:到目前为止,我知道重新创建对象可能更好,即使它涉及再次查询数据库.
进一步的答案可能会更详细地说明这方面!
如果我有stdObject发言权,$a.
当然,分配新房产没有问题$a,
$a->new_property = $xyz;
Run Code Online (Sandbox Code Playgroud)
但后来我想删除它,所以unset在这里没有任何帮助.
所以,
$a->new_property = null;
Run Code Online (Sandbox Code Playgroud)
有点像.但是有更"优雅"的方式吗?
所以,通常ArrayList.toArray()会返回一种类型Object[]....但是假设它是一个
Arraylist对象Custom,我该怎么做toArray()才能返回一种Custom[]而不是Object[]?
我有一个字符串
string = "firstName:name1, lastName:last1";
Run Code Online (Sandbox Code Playgroud)
现在我需要一个对象obj这样
obj = {firstName:name1, lastName:last1}
Run Code Online (Sandbox Code Playgroud)
我怎么能在JS中这样做?
是否有一个内置于.NET的方法可以将所有属性和对象写入控制台?当然可以使用反射制作一个,但我很好奇,如果这已经存在...特别是因为你可以在立即窗口中的Visual Studio中完成它.在那里你可以有一个对象名称(在调试模式下),按回车键,并且它的所有内容都打印得非常漂亮.
这样的方法存在吗?
到目前为止,我看到了三种在JavaScript中创建对象的方法.哪种方式最适合创建对象?为什么?
我还看到,在所有这些示例中,关键字var都没有在属性之前使用 - 为什么?是否没有必要var在属性名称之前声明,因为它提到属性是变量?
在第二种和第三种方式中,对象的名称是大写的,而在第一种方式中,对象的名称是小写的.我们应该将什么情况用于对象名称?
function person(fname, lname, age, eyecolor){
this.firstname = fname;
this.lastname = lname;
this.age = age;
this.eyecolor = eyecolor;
}
myFather = new person("John", "Doe", 50, "blue");
document.write(myFather.firstname + " is " + myFather.age + " years old.");
Run Code Online (Sandbox Code Playgroud)
var Robot = {
metal: "Titanium",
killAllHumans: function(){
alert("Exterminate!");
}
};
Robot.killAllHumans();
Run Code Online (Sandbox Code Playgroud)
var NewObject = {};
NewObject['property1'] = value;
NewObject['property2'] = value;
NewObject['method'] = function(){ /* function code here */ …Run Code Online (Sandbox Code Playgroud) 我想知道在JavaScript中是否有任何方法可以循环遍历这样的对象.
for(var i in myObject) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是得到这样的每个属性的名称.
for(var i in myObject) {
separateObj[myObject[i].name] = myObject[i];
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法在谷歌上找到类似的东西.他们说要用它们传递变量的名称,但这不是我想要实现的选项.
谢谢你尽你所能的帮助.
我在这里编写了一个快速的jsfiddle ,我将一个小的json对象传递给一个新的变量并修改原始变量(而不是新变量)的数据,但新变量的数据也会更新.这必须意味着json对象是通过引用传递的,对吧?
这是我的快速代码:
var json_original = {one:'one', two:'two'}
var json_new = json_original;
console.log(json_original); //one, two
console.log(json_new); //one, two
json_original.one = 'two';
json_original.two = 'one';
console.log(json_original); //two, one
console.log(json_new); //two, one
Run Code Online (Sandbox Code Playgroud)
有没有办法制作json对象的深层副本,以便修改原始变量不会修改新变量?
我四处寻找如何使用该Object.defineProperty方法,但找不到任何体面的东西.
有人给了我这段代码:
Object.defineProperty(player, "health", {
get: function () {
return 10 + ( player.level * 15 );
}
})
Run Code Online (Sandbox Code Playgroud)
但我不明白.主要get是,我不能得到(双关语).它是如何工作的?