implement partial-like module in python
up vote
0
down vote
favorite
I want to implement a piece of code that are equivalent to each other:
from inspect import getfullargspec
from functools import partial
def incomplete(func):
global inputs
global func_args
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
if len(args) < func_args:
partial(func, args)
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
My problem is that I should return a function in first if
statement, but the function is incomplete, what changes should be applied to the below code to have them equivalent?
from inspect import getfullargspec
from functools import partial
def incomplete(func):
global inputs
global func_args
inputs =
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
if len(inputs) < func_args:
inputs += args
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
python decorator partial
add a comment |
up vote
0
down vote
favorite
I want to implement a piece of code that are equivalent to each other:
from inspect import getfullargspec
from functools import partial
def incomplete(func):
global inputs
global func_args
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
if len(args) < func_args:
partial(func, args)
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
My problem is that I should return a function in first if
statement, but the function is incomplete, what changes should be applied to the below code to have them equivalent?
from inspect import getfullargspec
from functools import partial
def incomplete(func):
global inputs
global func_args
inputs =
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
if len(inputs) < func_args:
inputs += args
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
python decorator partial
Are you asking how to implementpartial
?
– mkrieger1
Nov 18 at 12:11
@mkrieger1 somehow! My goal is to how can I alter the second code that works like the first one!
– Mostafa Ghadimi
Nov 18 at 12:14
The documentation forpartial
even gives a possible implementation: docs.python.org/3/library/functools.html#functools.partial
– mkrieger1
Nov 18 at 12:15
@mkrieger1 thank you, I have implemented it in other way :)
– Mostafa Ghadimi
Nov 19 at 14:25
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I want to implement a piece of code that are equivalent to each other:
from inspect import getfullargspec
from functools import partial
def incomplete(func):
global inputs
global func_args
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
if len(args) < func_args:
partial(func, args)
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
My problem is that I should return a function in first if
statement, but the function is incomplete, what changes should be applied to the below code to have them equivalent?
from inspect import getfullargspec
from functools import partial
def incomplete(func):
global inputs
global func_args
inputs =
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
if len(inputs) < func_args:
inputs += args
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
python decorator partial
I want to implement a piece of code that are equivalent to each other:
from inspect import getfullargspec
from functools import partial
def incomplete(func):
global inputs
global func_args
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
if len(args) < func_args:
partial(func, args)
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
My problem is that I should return a function in first if
statement, but the function is incomplete, what changes should be applied to the below code to have them equivalent?
from inspect import getfullargspec
from functools import partial
def incomplete(func):
global inputs
global func_args
inputs =
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
if len(inputs) < func_args:
inputs += args
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
python decorator partial
python decorator partial
edited Nov 18 at 12:05
asked Nov 18 at 11:59
Mostafa Ghadimi
169216
169216
Are you asking how to implementpartial
?
– mkrieger1
Nov 18 at 12:11
@mkrieger1 somehow! My goal is to how can I alter the second code that works like the first one!
– Mostafa Ghadimi
Nov 18 at 12:14
The documentation forpartial
even gives a possible implementation: docs.python.org/3/library/functools.html#functools.partial
– mkrieger1
Nov 18 at 12:15
@mkrieger1 thank you, I have implemented it in other way :)
– Mostafa Ghadimi
Nov 19 at 14:25
add a comment |
Are you asking how to implementpartial
?
– mkrieger1
Nov 18 at 12:11
@mkrieger1 somehow! My goal is to how can I alter the second code that works like the first one!
– Mostafa Ghadimi
Nov 18 at 12:14
The documentation forpartial
even gives a possible implementation: docs.python.org/3/library/functools.html#functools.partial
– mkrieger1
Nov 18 at 12:15
@mkrieger1 thank you, I have implemented it in other way :)
– Mostafa Ghadimi
Nov 19 at 14:25
Are you asking how to implement
partial
?– mkrieger1
Nov 18 at 12:11
Are you asking how to implement
partial
?– mkrieger1
Nov 18 at 12:11
@mkrieger1 somehow! My goal is to how can I alter the second code that works like the first one!
– Mostafa Ghadimi
Nov 18 at 12:14
@mkrieger1 somehow! My goal is to how can I alter the second code that works like the first one!
– Mostafa Ghadimi
Nov 18 at 12:14
The documentation for
partial
even gives a possible implementation: docs.python.org/3/library/functools.html#functools.partial– mkrieger1
Nov 18 at 12:15
The documentation for
partial
even gives a possible implementation: docs.python.org/3/library/functools.html#functools.partial– mkrieger1
Nov 18 at 12:15
@mkrieger1 thank you, I have implemented it in other way :)
– Mostafa Ghadimi
Nov 19 at 14:25
@mkrieger1 thank you, I have implemented it in other way :)
– Mostafa Ghadimi
Nov 19 at 14:25
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
from inspect import getfullargspec
def incomplete(func):
global inputs
global func_args
inputs =
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
inputs += args
if len(inputs) < func_args:
def partial(*argss):
for i in argss:
inputs.append(i)
if (len(inputs) == func_args):
return func(*inputs)
else:
return partial
return partial
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
from inspect import getfullargspec
def incomplete(func):
global inputs
global func_args
inputs =
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
inputs += args
if len(inputs) < func_args:
def partial(*argss):
for i in argss:
inputs.append(i)
if (len(inputs) == func_args):
return func(*inputs)
else:
return partial
return partial
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
add a comment |
up vote
0
down vote
from inspect import getfullargspec
def incomplete(func):
global inputs
global func_args
inputs =
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
inputs += args
if len(inputs) < func_args:
def partial(*argss):
for i in argss:
inputs.append(i)
if (len(inputs) == func_args):
return func(*inputs)
else:
return partial
return partial
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
add a comment |
up vote
0
down vote
up vote
0
down vote
from inspect import getfullargspec
def incomplete(func):
global inputs
global func_args
inputs =
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
inputs += args
if len(inputs) < func_args:
def partial(*argss):
for i in argss:
inputs.append(i)
if (len(inputs) == func_args):
return func(*inputs)
else:
return partial
return partial
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
from inspect import getfullargspec
def incomplete(func):
global inputs
global func_args
inputs =
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
inputs += args
if len(inputs) < func_args:
def partial(*argss):
for i in argss:
inputs.append(i)
if (len(inputs) == func_args):
return func(*inputs)
else:
return partial
return partial
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
answered Nov 18 at 13:12
Mostafa Ghadimi
169216
169216
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53360626%2fimplement-partial-like-module-in-python%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Are you asking how to implement
partial
?– mkrieger1
Nov 18 at 12:11
@mkrieger1 somehow! My goal is to how can I alter the second code that works like the first one!
– Mostafa Ghadimi
Nov 18 at 12:14
The documentation for
partial
even gives a possible implementation: docs.python.org/3/library/functools.html#functools.partial– mkrieger1
Nov 18 at 12:15
@mkrieger1 thank you, I have implemented it in other way :)
– Mostafa Ghadimi
Nov 19 at 14:25