Найти - Пользователи
Полная версия: Изменение параметров в функции.
Начало » Python для новичков » Изменение параметров в функции.
1
nodochy
Есть функция
 def blabla(x,y):
    print(x)
    print(y)
Возможно ли к ней применить другую функцию которая изменит параметры или же нет? Если да, то можете показать как и дать ссылку, где можно почитать как это сделать
PEHDOM
nodochy
Возможно ли к ней применить другую функцию которая изменит параметры или же нет?
в каком смысле ? из def blabla(x,y) чтобы она превратилась в def blabla(x)? а как тогда быть с переменными внутри функции, что по вашему должна вывести комманда print(y) в таком случае?
nodochy
Нет конечно. Извините я не правильно задал вопрос. Сама функция остается той же. Я хочу знать можно ли у вызванной функции поменять значения.
def blabla(x,y):
print(x)
print(y)
def функция
blabla(5,3).функция(2)
и выдало х и y = 10 и 6.
doza_and
 def f1(x,y):
   return (10,6)
def bla(x,y):
    print(x,y)
bla(*f1(x,y))

Непонятно откуда потребность возникла. Подавайте то что нужно как в примере выше и будет вам счастье. Или вы что-то другое хотите?
PEHDOM
nodochy всеравно ничего не понятно, толи вам нужны декораторы, толи map, толи вы хотите внутрях функции создать еще функцию, или вообще поменять функцию, можете както более внятно обьяснить?

nodochy
Я хочу знать можно ли у вызванной функции поменять значения.
всеравно ничего непонятно, какие значения, на каком этапе?
например декоратор:
 def decorator_factory(mult):
    def decorator(func):
        def wrapper(*args):
            func(*[arg*mult for arg in args])
        return wrapper
    return decorator
@ decorator_factory(2)
def blabla(x,y):
    print(x)
    print(y)
blabla(5,3)
>>>
10
6

nodochy
blabla(5,3).функция(2)
ну дык это не функция, а классы должны быть, нет можно наверно и функцию, но по крайней мере из вот такого
 def blabla(x,y):
    print(x)
    print(y)
вот такое
 blabla(5,3).функция(2)
вы не получите хотябы потому что blabla(5,3) вернет None а у None нету атрибута “функция” о чем вам честно и скажет интерпретатор… Так что опишите более подробно что вы такии конкретно хотите и на каком этапе.
nodochy
Большое спасибо именно это и нужно. Пример у меня есть 43 базовые функции и 15 функций построенных на основе этих 43. Сама программа рисует различные обьекты (геометрические фигуры, параболы гиперболы и т.ж). И мне хотелось бы масштабировать и поворачивать как всю графику так и отдельные ее элементы.
Конечно можно в каждом методе прописать изначально возможность делать это, но тогда они будут перегружены параметрами. Проще сделать для этого отдельные функции и вызывать ее к обьекту, который нужно поменять.
Пошел читать про декораторы
PEHDOM
nodochy
Сама программа рисует различные обьекты (геометрические фигуры, параболы гиперболы и т.ж). И мне хотелось бы масштабировать и поворачивать как всю графику так и отдельные ее элементы.
Конечно можно в каждом методе прописать изначально возможность делать это, но тогда они будут перегружены параметрами. Проще сделать для этого отдельные функции и вызывать ее к обьекту, который нужно поменять.
тогда несколько иначе:
 def decorator(func):
        def wrapper(*args):
            func(*[arg*scaling for arg in args])
        return wrapper
@ decorator
def blabla(x,y):
    print(x)
    print(y)
scaling = 2
blabla(5,3)
scaling = 3
blabla(5,3)
>>> 
10
6
15
9
>>> 
Rodegast
> Пошел читать про декораторы

Лучше прочитай про ООП.
nodochy
Я читал про ООП. И вот что скажу. Можно даже запомнить всю информацию. Можно даже использовать ее. Но пока тебе на практике реально не понадобится сделать по быстрому рефакторинг своего проекта, то понять это абсолютно невозможно. Лично для меня так. Пока я 2 неделю только учу питон. Допустим я знаю, что есть абстрактные классы. Но зачем они нужны - нет и сколько бы документации я не прочел, пока он мне не понадобится на практике я не пойму. Если не ошибаюсь есть еще более высокий уровень абстракции: интерфейсы их в питоне реализует сторонняя библиотека, но в той же Java они есть в ядре. Про них я вообще ничего сказать не могу. А у меня на работе люди говорят вау как это круто.
py.user.next
nodochy
Я читал про ООП.
nodochy
Допустим я знаю, что есть абстрактные классы.
Есть объектно-ориентированная парадигма программирования, а есть объектно-ориентированная парадигма программирования, реализованная в языке - Python, Java, C++ и так далее. И это две разные вещи.

Поэтому когда ты читаешь про абстрактные классы в питоне, ты мало что узнаешь про абстрактные классы в объектно-ориентированной парадигме программирования.
В ООП гораздо больше теории, чем в реализации ООП в питоне. И в питоне многих вещей из ООП вообще нет, хотя в ООП они есть.

ООП - хорошая, рабочая и надёжная система; но не надо путать ООП и одну из её реализаций в каком-то там языке, который просто не продуман.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB