mirror of
https://github.com/python/cpython.git
synced 2025-09-06 17:02:26 +00:00
Added "apply"; added "SyntaxError"; changed table lay-out.
This commit is contained in:
parent
d39e412482
commit
c02e15c45e
1 changed files with 42 additions and 23 deletions
|
@ -53,6 +53,21 @@ builtin_abs(self, v)
|
||||||
return (*nm->nb_absolute)(v);
|
return (*nm->nb_absolute)(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static object *
|
||||||
|
builtin_apply(self, v)
|
||||||
|
object *self;
|
||||||
|
object *v;
|
||||||
|
{
|
||||||
|
object *func, *args;
|
||||||
|
if (v == NULL || !is_tupleobject(v) || gettuplesize(v) != 2) {
|
||||||
|
err_setstr(TypeError, "apply() requires (func,args)");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
func = gettupleitem(v, 0);
|
||||||
|
args = gettupleitem(v, 1);
|
||||||
|
return call_object(func, args);
|
||||||
|
}
|
||||||
|
|
||||||
static object *
|
static object *
|
||||||
builtin_chr(self, v)
|
builtin_chr(self, v)
|
||||||
object *self;
|
object *self;
|
||||||
|
@ -551,6 +566,7 @@ builtin_type(self, v)
|
||||||
|
|
||||||
static struct methodlist builtin_methods[] = {
|
static struct methodlist builtin_methods[] = {
|
||||||
{"abs", builtin_abs},
|
{"abs", builtin_abs},
|
||||||
|
{"apply", builtin_apply},
|
||||||
{"chr", builtin_chr},
|
{"chr", builtin_chr},
|
||||||
{"dir", builtin_dir},
|
{"dir", builtin_dir},
|
||||||
{"divmod", builtin_divmod},
|
{"divmod", builtin_divmod},
|
||||||
|
@ -602,6 +618,7 @@ object *IndexError;
|
||||||
object *ValueError;
|
object *ValueError;
|
||||||
object *KeyError;
|
object *KeyError;
|
||||||
object *OverflowError;
|
object *OverflowError;
|
||||||
|
object *SyntaxError;
|
||||||
|
|
||||||
static object *
|
static object *
|
||||||
newstdexception(name, message)
|
newstdexception(name, message)
|
||||||
|
@ -636,6 +653,8 @@ initerrors()
|
||||||
KeyError = newstdexception("KeyError", "invalid key");
|
KeyError = newstdexception("KeyError", "invalid key");
|
||||||
OverflowError =
|
OverflowError =
|
||||||
newstdexception("OverflowError", "arithmetic overflow");
|
newstdexception("OverflowError", "arithmetic overflow");
|
||||||
|
SyntaxError =
|
||||||
|
newstdexception("SyntaxError", "syntax error");
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue