@require("x", int, float)
@require("y", float)
def foo(x, y):
return x+y
http://code.activestate.com/recipes/454322/
@checktype((int, float), float)
def foo(x, y):
return x+y
from random import choice
def f(a, b):
return 2*a, 2*b
x = choice((1, "a"))
y = choice((1, "a"))
f(y,x)
Vi to az interpret pri behu. Proto by kazdy modul (zvlaste u vetsich projektu, jak zminujete), mel mit svuj vlastni selftest, ktery ho otestuje na vsechny mozne stavy.
#include <stdio.h>
int main(int *argc, char *argv[]){
printf("Vysledek = %d\n", (1+"1"));
return(0);
}
A neprijdete na to spolehlive ani za behu programu, protoze Vysledek = 134513793, kdezto Python by vam alespon vyhodil vyjimku, ze int a str nelze scitat s tim kde a jak se to presne stalo. A pak takovou chybu u statickeho jazyka hledejte. Co ze jste to psal o strasne tezkem dohledani chyby u Pythonu?
aa = 1 bb = aa + 1V Objective C to bude asi takto:
id aa = 1 id bb = aa + 1Protoze se pouziva pozdni vazba, prekladac nevi jaky typ ma promm. aa a bude mi vypisovat varovani? Tj. chtel byste aby u vyse uvedeneho kodu Python vypisoval varovani? Jestli Objective C splnuje vase naroky na programovaci jazyk, proc tedy nepouzivate tento a snazite se pretvorit Python k obrazu svemu?
>>> type([]), type(False), type(None) (<class 'list'>, <class 'bool'>, <class 'NoneType'>)