Korištenje dekoratora je jednostavno, no pisanje zna biti kompleksno.
• Kroz jednostavne korake ćemo proći i naučiti dekoratore
1. Funkcije
Kreiranje def, parametri, vraćanje vrijednosti, poziv funkcije
def foo():
return 1
print foo()
1
2. Scope
Namespace funkcije za identificiranje varijabli u tijelu funkcije
a_string = "This is a global variable"
def foo():
print a_string # 1
foo()
This is a global variable
3. variable resolution rules
Pristup globalnim varijablama (promjenjiv tip podataka podržava promjene)
a = ["Pero"]
b = "Pero”
def foo():
a[0] = "Ivo”
b = "Ivo"
print locals()
foo()
print globals()
print a
4. Variable lifetime
Namespace je svaki puta kreiran i uništen prilikom poziva funkcije, ne postoji sintaksa za vrijednost varijable.
def foo():
x = 1
foo()
5. Function arguments and parameters
Parametri funkcije mogu biti nazivi ili pozicije
def foo(x, y=0):
return x - y
print foo(3,1)
print foo(3)
6. Nested function
Python gleda scope outer prvo i pronalazi lokalnu varijablu kroz inner
def outer():
x = 1
def inner():
print x
inner()
outer()
7. Functions are first class objects in Python
Funkcije su objekti u Pythonu, (klase su također objekti), shvaćamo ih kao vrijednosti, te ih možemo koristiti npr. kao argumente.
print issubclass(int, object)
def foo():
pass
print foo.__class__
print issubclass(foo.__class__, object)
8. Closures
Inner funkcija definirana u ne globalnom scope pamti izgled namespace.
def outer():
x = 1
def inner():
print x
return inner
foo = outer()
foo()
9. Decorators
def outer(some_func):
def inner():
print "Before some_func"
ret = some_func()
print some_func.__name__
return ret + 1
return inner
def foo():
return 1
decorated = outer(foo)
print decorated()
10. Symbol @ applies a decorator
def outer(some_func):
def inner():
print "Before some_func"
ret = some_func()
print some_func.__name__
return ret + 1
return inner
@outer
def foo():
return 1
print foo()
11. *args and **kwargs
def logger(func):
def inner(*args, **kwargs):
print "Argumenti su bili : %s, %s" %(args, kwargs)
return func(*args, **kwargs)
return inner
@logger
def fool(x,y=1):
return x * y
@logger
def fool2():
return 2
print fool(5,2)
print fool2()
12. functools.wraps
from functools import wraps
def logged(func):
@wraps(func)
def with_logging(*args, **kwargs):
print func.__name__ + " was called"
return func(*args, **kwargs)
return with_logging
@logged
def f(x):
"""does some math"""
return x + x * x
print f(3)
print f.__name__
Korištenje dekoratora je jednostavno, no pisanje zna biti kompleksno.
• Kroz jednostavne korake ćemo proći i naučiti dekoratore
1. Funkcije
Kreiranje def, parametri, vraćanje vrijednosti, poziv funkcije
def foo():
return 1
print foo()
1
2. Scope
Namespace funkcije za identificiranje varijabli u tijelu funkcije
a_string = "This is a global variable"
def foo():
print a_string # 1
foo()
This is a global variable
3. variable resolution rules
Pristup globalnim varijablama (promjenjiv tip podataka podržava promjene)
a = ["Pero"]
b = "Pero”
def foo():
a[0] = "Ivo”
b = "Ivo"
print locals()
foo()
print globals()
print a
4. Variable lifetime
Namespace je svaki puta kreiran i uništen prilikom poziva funkcije, ne postoji sintaksa za vrijednost varijable.
def foo():
x = 1
foo()
5. Function arguments and parameters
Parametri funkcije mogu biti nazivi ili pozicije
def foo(x, y=0):
return x - y
print foo(3,1)
print foo(3)
6. Nested function
Python gleda scope outer prvo i pronalazi lokalnu varijablu kroz inner
def outer():
x = 1
def inner():
print x
inner()
outer()
7. Functions are first class objects in Python
Funkcije su objekti u Pythonu, (klase su također objekti), shvaćamo ih kao vrijednosti, te ih možemo koristiti npr. kao argumente.
print issubclass(int, object)
def foo():
pass
print foo.__class__
print issubclass(foo.__class__, object)
8. Closures
Inner funkcija definirana u ne globalnom scope pamti izgled namespace.
def outer():
x = 1
def inner():
print x
return inner
foo = outer()
foo()
9. Decorators
def outer(some_func):
def inner():
print "Before some_func"
ret = some_func()
print some_func.__name__
return ret + 1
return inner
def foo():
return 1
decorated = outer(foo)
print decorated()
10. Symbol @ applies a decorator
def outer(some_func):
def inner():
print "Before some_func"
ret = some_func()
print some_func.__name__
return ret + 1
return inner
@outer
def foo():
return 1
print foo()
11. *args and **kwargs
def logger(func):
def inner(*args, **kwargs):
print "Argumenti su bili : %s, %s" %(args, kwargs)
return func(*args, **kwargs)
return inner
@logger
def fool(x,y=1):
return x * y
@logger
def fool2():
return 2
print fool(5,2)
print fool2()
12. functools.wraps
from functools import wraps
def logged(func):
@wraps(func)
def with_logging(*args, **kwargs):
print func.__name__ + " was called"
return func(*args, **kwargs)
return with_logging
@logged
def f(x):
"""does some math"""
return x + x * x
print f(3)
print f.__name__
I am Joyce Zhang from Zhan Wang Industry& Trading Company Limited.
We are selling hookah more than 4 years, if you are interested in our products, please contact me at any time. Thanks.
Email: joycezwgm1@gmail.com
MOB: +8613426857534
Contact: Joyce Zhang
Glass hookah catalogue from Zhan Wang Industiry & Trading Company
Convert bilangan
1. /*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package mylabs;
/**
*
* @author x86 a.k.a haripinter
*/
public class decimal {
public static void main(String[] haripinter){
int des = 1000;
// desimal ke biner
String bin = Integer.toBinaryString(des);
System.out.println(bin);
// desimal ke hexa
String hex = Integer.toHexString(des);
System.out.println(hex);
// biner ke desimal
int des1 = Integer.valueOf(bin,2);
System.out.println(des1);
// biner ke desimal
int des2 = Integer.valueOf(hex,16);
System.out.println(des2);
// hexa ke biner
String bin2 = Integer.toBinaryString(Integer.valueOf(hex, 16));
System.out.println(bin2);
// biner ke hexa
String hex2 = Integer.toHexString(Integer.valueOf(bin, 2));
System.out.println(hex2);
}
}
Source Code dalam PHP
KOnversi Bilangan dengan PHP
PHP
<?php
/**
*
* @author x86 a.k.a haripinter