Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 19, 2019 13:30:42

nodochy
Зарегистрирован: 2019-11-15
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение параметров в функции.

Есть функция

 def blabla(x,y):
    print(x)
    print(y)
Возможно ли к ней применить другую функцию которая изменит параметры или же нет? Если да, то можете показать как и дать ссылку, где можно почитать как это сделать

Офлайн

#2 Ноя. 19, 2019 14:08:03

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Изменение параметров в функции.

nodochy
Возможно ли к ней применить другую функцию которая изменит параметры или же нет?
в каком смысле ? из def blabla(x,y) чтобы она превратилась в def blabla(x)? а как тогда быть с переменными внутри функции, что по вашему должна вывести комманда print(y) в таком случае?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Ноя. 19, 2019 22:17:41

nodochy
Зарегистрирован: 2019-11-15
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение параметров в функции.

Нет конечно. Извините я не правильно задал вопрос. Сама функция остается той же. Я хочу знать можно ли у вызванной функции поменять значения.
def blabla(x,y):
print(x)
print(y)
def функция
blabla(5,3).функция(2)
и выдало х и y = 10 и 6.

Отредактировано nodochy (Ноя. 19, 2019 22:18:04)

Офлайн

#4 Ноя. 20, 2019 07:18:57

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Изменение параметров в функции.

 def f1(x,y):
   return (10,6)
def bla(x,y):
    print(x,y)
bla(*f1(x,y))

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



Отредактировано doza_and (Ноя. 20, 2019 07:22:25)

Офлайн

#5 Ноя. 20, 2019 12:29:57

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Изменение параметров в функции.

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 нету атрибута “функция” о чем вам честно и скажет интерпретатор… Так что опишите более подробно что вы такии конкретно хотите и на каком этапе.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Ноя. 20, 2019 12:30:59)

Офлайн

#6 Ноя. 20, 2019 14:48:36

nodochy
Зарегистрирован: 2019-11-15
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение параметров в функции.

Большое спасибо именно это и нужно. Пример у меня есть 43 базовые функции и 15 функций построенных на основе этих 43. Сама программа рисует различные обьекты (геометрические фигуры, параболы гиперболы и т.ж). И мне хотелось бы масштабировать и поворачивать как всю графику так и отдельные ее элементы.
Конечно можно в каждом методе прописать изначально возможность делать это, но тогда они будут перегружены параметрами. Проще сделать для этого отдельные функции и вызывать ее к обьекту, который нужно поменять.
Пошел читать про декораторы

Отредактировано nodochy (Ноя. 20, 2019 14:55:13)

Офлайн

#7 Ноя. 20, 2019 15:05:13

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Изменение параметров в функции.

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
>>> 



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Ноя. 20, 2019 15:05:36)

Офлайн

#8 Ноя. 20, 2019 15:08:42

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2679
Репутация: +  182  -
Профиль   Отправить e-mail  

Изменение параметров в функции.

> Пошел читать про декораторы

Лучше прочитай про ООП.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#9 Ноя. 20, 2019 19:26:15

nodochy
Зарегистрирован: 2019-11-15
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Изменение параметров в функции.

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

Офлайн

#10 Ноя. 21, 2019 01:10:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Изменение параметров в функции.

nodochy
Я читал про ООП.
nodochy
Допустим я знаю, что есть абстрактные классы.
Есть объектно-ориентированная парадигма программирования, а есть объектно-ориентированная парадигма программирования, реализованная в языке - Python, Java, C++ и так далее. И это две разные вещи.

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

ООП - хорошая, рабочая и надёжная система; но не надо путать ООП и одну из её реализаций в каком-то там языке, который просто не продуман.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version