Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
70
Task/Call-a-function/Python/call-a-function.py
Normal file
70
Task/Call-a-function/Python/call-a-function.py
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
def no_args():
|
||||
pass
|
||||
# call
|
||||
no_args()
|
||||
|
||||
def fixed_args(x, y):
|
||||
print('x=%r, y=%r' % (x, y))
|
||||
# call
|
||||
fixed_args(1, 2) # x=1, y=2
|
||||
|
||||
## Can also called them using the parameter names, in either order:
|
||||
fixed_args(y=2, x=1)
|
||||
|
||||
## Can also "apply" fixed_args() to a sequence:
|
||||
myargs=(1,2) # tuple
|
||||
fixed_args(*myargs)
|
||||
|
||||
def opt_args(x=1):
|
||||
print(x)
|
||||
# calls
|
||||
opt_args() # 1
|
||||
opt_args(3.141) # 3.141
|
||||
|
||||
def var_args(*v):
|
||||
print(v)
|
||||
# calls
|
||||
var_args(1, 2, 3) # (1, 2, 3)
|
||||
var_args(1, (2,3)) # (1, (2, 3))
|
||||
var_args() # ()
|
||||
|
||||
## Named arguments
|
||||
fixed_args(y=2, x=1) # x=1, y=2
|
||||
|
||||
## As a statement
|
||||
if 1:
|
||||
no_args()
|
||||
|
||||
## First-class within an expression
|
||||
assert no_args() is None
|
||||
|
||||
def return_something():
|
||||
return 1
|
||||
x = return_something()
|
||||
|
||||
def is_builtin(x):
|
||||
print(x.__name__ in dir(__builtins__))
|
||||
# calls
|
||||
is_builtin(pow) # True
|
||||
is_builtin(is_builtin) # False
|
||||
|
||||
# Very liberal function definition
|
||||
|
||||
def takes_anything(*args, **kwargs):
|
||||
for each in args:
|
||||
print(each)
|
||||
for key, value in sorted(kwargs.items()):
|
||||
print("%s:%s" % (key, value))
|
||||
# Passing those to another, wrapped, function:
|
||||
wrapped_fn(*args, **kwargs)
|
||||
# (Function being wrapped can have any parameter list
|
||||
# ... that doesn't have to match this prototype)
|
||||
|
||||
## A subroutine is merely a function that has no explicit
|
||||
## return statement and will return None.
|
||||
|
||||
## Python uses "Call by Object Reference".
|
||||
## See, for example, http://www.python-course.eu/passing_arguments.php
|
||||
|
||||
## For partial function application see:
|
||||
## http://rosettacode.org/wiki/Partial_function_application#Python
|
||||
Loading…
Add table
Add a link
Reference in a new issue