function Animal(type) {
if (type == "cat") {
this.__proto__ = Cat.prototype;
} else if (type == "dog") {
this.__proto__ = Dog.prototype;
} else if (type == "fish") {
this.__proto__ = Fish.prototype;
}
}
Animal.prototype.say = function() {
alert("This animal can't speak!");
}
function Cat() {
// init cat
}
Cat.prototype = new Animal();
Cat.prototype.say = function() {
alert("Meow!");
}
function Dog() {
// init dog
}
Dog.prototype = new Animal();
Dog.prototype.say = function() {
alert("Bark!");
}
function Fish() {
// init fish
}
Fish.prototype = new Animal();
var newAnimal = new Animal("dog");
newAnimal.say();
Это, как гарантируют, не будет работать, поскольку __proto__
не стандартная переменная, но она работает, по крайней мере, в Firefox и Safari.
, Если Вы не понимаете, как это работает, читайте об опытной цепочке.
print 'Status: 403 Forbidden'
print
У меня работает. Тем не менее, вам нужен второй вывод, так как вам нужна двойная новая строка для завершения заголовков ответов HTTP. В противном случае ваш веб-сервер может пожаловаться, что вы не отправляете ему полный набор заголовков.
sys.stdout('Status: 403 Forbidden\r\n\r\n')
может быть технически более правильным, согласно RFC (при условии, что ваш сценарий CGI не работает в текстовом режиме в Windows). Однако оба окончания строк работают везде.
Я думаю, вы ищете send_error
. Он будет находиться на http.server
в py3k.