Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.54/54: Рейтинг темы: голосов - 54, средняя оценка - 4.54
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755

Как работают функции?

06.10.2020, 19:17. Показов 12156. Ответов 138
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как подправить, чтобы в функцию tr передавался параметр из функции buba, вводимый пользователем?
Python
1
2
3
4
5
6
7
8
9
10
11
12
def buba():
    print("Введите число ", end = '')
    num = int(input())
    print(num)
 
        
def tr(num):
    hi = num+1
    print(hi)
 
buba()
tr()
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.10.2020, 19:17
Ответы с готовыми решениями:

Как работают функции?
Как заменить global на что то другое? def getInput(): global k k=int(input('Введите, сколько у Вас есть ')) getInput() ...

Как работают встроенные функции?
Почему первая строка рисует сердечко, а вторая выдает ошибку?print(chr(3)) print(chr(10045)) >>> print(chr(3)) ♥ ...

Как работают функции в python?
Извините за такой тупой вопрос, но мне нужно написать небольшой скрипт на питоне. и я не помню, как именно работают функции, помню что...

138
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
22.12.2020, 13:34
Студворк — интернет-сервис помощи студентам
Хотя Рыжий Лис, прав. Декоратор здесь не подойдет, так как он добавляет действия перед методом. А Вам нужно выдать сообщение в конце метода.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
22.12.2020, 13:54
Цитата Сообщение от Viktorrus Посмотреть сообщение
Декоратор здесь не подойдет, так как он добавляет действия перед методом
Неправда, можно добавлять действия и перед вызовом фунции, и после, и вместо
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
22.12.2020, 14:35  [ТС]
Для добавления декоратора перед функциями можно задействовать фразу
Python
1
print("Моем руки")
А с вариантом "вместо" возможно придумаю потом.

Добавлено через 5 минут
Для добавления декоратора "после" можно задействовать фразу
Python
1
print("Прибираемся за собой")
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
22.12.2020, 15:21
Рыжий Лис, Может быть. Я в декоратарах не силен. Разбирал у Лутца пример, только когда действия добавляет перед вызовом метода.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
22.12.2020, 15:59
Цитата Сообщение от Viktorrus Посмотреть сообщение
Может быть. Я
Вполне стандартный подход. В той же джанге, если нет прав, то и даже не запускаем код: https://docs.djangoproject.com... n_required Или кешировалка функции, если функция детерминирована и есть попадание в кеш, то не вызываем тяжёлую функцию.

Для ТСа декораторы не нужны - всё это делается на примитивное логике if-ами.

Добавлено через 4 минуты
Просто для размышления: в других языках программирования декоратора нет, и особенно нет отдельного синтаксического сахара для него. Значит, он не так и нужен? Хотя есть функции высокого порядка.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.12.2020, 17:33
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Просто для размышления: в других языках программирования декоратора нет,
Декораторы имплицитно есть везде. Потому что это вовсе не сахар, а шаблон программирования.
А шаблон программирования можно реализовать в любом ЯП.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
22.12.2020, 20:55  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Для ТСа декораторы не нужны - всё это делается на примитивное логике if-ами.
Внутри функций класса?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.12.2020, 05:03
Функция внутри класса называется методом. И классы тоже не нужны, пока вы не освоили более простые вещи.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def make(what, dobavki="перец, майонез", lomtik=None):
    if what == 'бутерброт':
        print('делаем бутерброт')
        print("Берем ломтик хлеба")
        if lomtik:
            print("Дообавляем сверху ломтик " + lomtik)
    elif what == 'суп':
        print("варим из овощей вегетарианский суп")
    else:
        raise ValueError(what)
    print("В качестве приправы добавляем " + dobavki)
    print("Посолим по вкусу при необходимости")
 
make('бутерброт', lomtik="ветчины")
make('суп', lomtik="ветчины")
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
23.12.2020, 15:50  [ТС]
Сам думаю так, что функция внутри класса называется методом тогда, когда с помощью неё производится какое-то действие, как например на действие указывает глагол или сказуемое.

Насчет добавления через декоратор print("Посолим по вкусу при необходимости") уже подсказал человек.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.12.2020, 15:56
Цитата Сообщение от supmener Посмотреть сообщение
функция внутри класса называется методом тогда, когда с помощью неё производится какое-то действие,
Ты не прав. Метод всегда называется методом, потому что принадлежит конкретному классу и имеет доступ к внутренностям класса через self (this в некоторых других языках).

Ме́тод в объектно-ориентированном программировании — это функция или процедура, принадлежащая какому-то классу или объекту.
https://ru.wikipedia.org/w/ind... =103720563

То есть даже если ты захочешь вызвать статический метод, не создавая объект класса, тебе придётся всё равно обращаться к методу через класс.
1
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
24.12.2020, 11:27
Цитата Сообщение от supmener Посмотреть сообщение
что функция внутри класса называется методом тогда, когда с помощью неё производится какое-то действие
Дополню то, что сказал Рыжий Лис. Функции внутри класса могут быть методом, а могут работать просто как обычные функции, но находящиеся в пространстве имен класса, то есть их можно вызвать только указав класс. Такие функции внутри класса называются статическими методами. Их основное отличие, что среди параметров у них нет параметра self .
И так, если в описании класса функция имеет параметр self, то это метод, а если его нет, то это простая функция но встроенная в пространство имен класса.
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
24.12.2020, 17:10  [ТС]
Если правильно знаю, декораторы нужны для того, чтобы добавить код, не изменяя ранее созданный (например, если другой код раньше написал другой человек).
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.12.2020, 17:27
Неправда. И что ты привязался к декораторам? Выучи для начала области видимости переменных и простейшие конструкции управления потоком выполнения программы (if/while/for)
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
24.12.2020, 21:26  [ТС]
А почему Вы думаете, что их недостаточно знаю?
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
28.12.2020, 11:11
читал, что меня с ТС сравнивают\путают
по данной теме отвечу, юзаю Пичарм, для того, чтобы ТСу понять, нужна возможность пальчиком нажимая на клавишу двигаться по коду, как в VBA - кнопкой эф8 и выделяется строка, которая выполняется жёлтым цветом, и подведя курсор к разным частям кода можно много чего узнать, есть точки останова, чтобы пальчик не уставал, можно на клавишу гирьку поставить))
очень давно, была моя тема о таком профите, ответ был юзай Пичарм - но тогда у меня с Пичармом не задалось, и...? как в Пичарме
где в Пичарме такой профит? спс
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
28.12.2020, 11:19
Ципихович Эндрю, и в pycharm дебаг есть, даже в бесплатной версии. Ставишь точки останова на строчках - запускаешь код под отладчиком. Когда остановился в точке останова - можно "тыкать пальчиком" для перехода построчно.
1
5184 / 1074 / 150
Регистрация: 29.01.2013
Сообщений: 6,263
28.12.2020, 11:24
Ципихович Эндрю, плюс там отображается состояние всех переменных. Очень удобно.
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
28.12.2020, 11:46
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Ставишь точки останова на строчках
спс, так я спросил как?
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
можно "тыкать пальчиком" для перехода построчно
спс, так я спросил как?
я год назад искал не нашёл и сейчас погуглил-тоже всё там воркруг, да около....
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
28.12.2020, 12:17
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
спс, так я спросил как?
Ты не можешь найти кнопочку "Debug?" Которая рядом с "run"
Миниатюры
Как работают функции?   Как работают функции?  
1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
28.12.2020, 12:48
Ципихович Эндрю, Про отладку программ
Там IDEA, но суть одна и та же.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.12.2020, 12:48

Не работают некоторые функции php (phpinfo), простые конструкции типа for - работают
Здравствуйте. Предыстория такова - стоял и работал почти год openserver, знать не знал проблем. Потом прилетело принудительное...

Функции работают по отдельности, но если запустить их подряд, то не работают
#include <string> #include <fstream> #include <iostream> #include <vector> using namespace std; void func (vector<double>...

Как работают функции?
void UnionSet(int* Set, int SIZE, int* Set_1, int SIZE_1, int* Set_0, int & SIZE_0) { SIZE_0 = SIZE; for (int i = 0; i <...

Как работают функции?
Код отсюда https://www.ibm.com/developerworks/ru/library/j-cb02067/index.html Не пойму как это работает. Эта строка что делает (first...

как работают функции
void Model::MoveUp() { int hold=-1; if(!isCircleUp) { for(int i=0;i<NCIRCLES;i++) { if(circles.nCore ==...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru