Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 03.02.2013
Сообщений: 109

Self. Не отрабатывает функция

16.07.2022, 20:37. Показов 819. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, в приведенном коде, не отрабатывает функция accepted_sock. если функцию вынести из класса то отрабатывает на ура. выбивает ошибку 'int' object has no attribute 'accepted_sock'

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Server:
    def accepted_sock(sock, address) -> None:
        print('ssssssssssssssssssssss')
    #     print('CLIENT')
    #     print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S>"), "Клиент подключен")
    #     print(sock)
    #     print(address)
    #     data = bytearray(sock.recv(1024)).decode('utf-8')
    #     print(data)
    #     # print('- ',data.split())
 
    def start(self, port=5555):
        print('SERVER')
        print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S>"), 'Сервер запущен, порт:', port, ', Имя хоста: ',
              socket.gethostname(), ', IP: ', socket.gethostbyname(socket.gethostname()))
        server_sock = socket.socket()
        server_sock.bind((socket.gethostname(), port))
        server_sock.listen()
 
        while True:
            try:
                (sock, address) = server_sock.accept()
                sock.settimeout(20)
                server_sock_thr = threading.Thread(target=self.accepted_sock, args=(sock, address,))
                server_sock_thr.daemon = True
                server_sock_thr.start()
                sock.close()
            except Exception as e:
                print(str(e))
        print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S>"), "Сервер остановлен")
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2022, 20:37
Ответы с готовыми решениями:

не отрабатывает функция
Доброго дня, изучаю Python по учебнику, не выходит один пример. def say(message, times=1): print(message*times) ...

Функция отрабатывает верно, но возвращает другой список
Здравствуйте! в упор не вижу, где ошибка, функция выдает правильный список, но при возвращении в место вызова список выдает уже другой,...

Не отрабатывает функция
Добрый, Собственно делал свое меню и проблема в том что при нажатии на кнопку ничего не отрабатывает. <nav...

10
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
16.07.2022, 21:34
Цитата Сообщение от deadmask Посмотреть сообщение
def accepted_sock(sock, address) -> None:
а где же селф? точно по ООП почитал в питоне? это не статик метод?
0
1 / 1 / 0
Регистрация: 03.02.2013
Сообщений: 109
16.07.2022, 21:50  [ТС]
с ним тоже пробывал, дописал после того как выложил код. результат тот же. сижу курю мануал. не понимаю)
)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
16.07.2022, 21:58
deadmask, пробовал?)) то есть ты методом тыка программируешь? что такое селф, для чего его указывать в методе? почему в статик методе его не указывают?

я с сокетами много лет не работал, уточняю - где ты такой код видел? точно после листен идет аксепт? вроде как просто аксепт.
0
1 / 1 / 0
Регистрация: 03.02.2013
Сообщений: 109
16.07.2022, 22:56  [ТС]
возможно я что то не правильно понимаю, до этого писал на C#, есть проект который необходимо переписать под линукс и прикрутить к django. Но питон я не знаю, только базовый курс от яндекса прошел, чтоб понять синтаксис. Self это то же самое что и this в шарпе - ссылка на экземпляр класса как понял. В статике методы привязанны непосредственно к классу а не к экземпляру. Да, после листен идет цикл с акцептами плодящими треды в которых и обрабатываются данные

Добавлено через 37 минут
понимаю что скорее всего это не нормально НО, заработало с явным указанием класса, это уже было просто пальцем в небо.
Python
1
server_sock_thr = threading.Thread(target=Server.__accepted_sock, args=(sock, address))
0
1 / 1 / 0
Регистрация: 03.02.2013
Сообщений: 109
17.07.2022, 07:41  [ТС]
Нет, не прокатило) запустилось 3 раза и сдохло))))
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
17.07.2022, 10:58
deadmask, так может дело в самих сокетах и закрытии?
сделай код как в 1 посте, только def accepted_sock(self, sock, address) -> None:
0
1 / 1 / 0
Регистрация: 03.02.2013
Сообщений: 109
17.07.2022, 11:34  [ТС]
Нет, то же самое
вызов
Python
1
2
3
4
5
6
7
  while True:       
            sock, address = server_sock.accept()
            sock.settimeout(20)
            server_sock_thr = threading.Thread(target=self.__accepted_sock, args=(sock, address))
            server_sock_thr.daemon = True
            server_sock_thr.start()
            sock.close()
Функция
Python
1
2
3
4
5
6
7
 def accepted_sock(self, sock, address) -> None:
        print('__accepted_sock')
        print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S>"), "Клиент подключен")
        print(sock)
        print(address)
        data = bytearray(sock.recv(1024)).decode('utf-8')
        print('DATA'+data)
Трэйсинг
File "C:\Users\User\PycharmProjects\Sansara\S ansara\Server.py", line 29, in start
server_sock_thr = threading.Thread(target=self.__accepted_ sock, args=(sock, address))
AttributeError: 'int' object has no attribute '_Server__accepted_sock'
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
17.07.2022, 12:33
Цитата Сообщение от deadmask Посмотреть сообщение
Нет, то же самое
что тоже самое? я написал четко
Цитата Сообщение от Welemir1 Посмотреть сообщение
сделай код как в 1 посте,
а у тебя что?

Добавлено через 30 секунд
Цитата Сообщение от deadmask Посмотреть сообщение
server_sock_thr = threading.Thread(target=self.accepted_so ck, args=(sock, address,))
вот так надо
1
1 / 1 / 0
Регистрация: 03.02.2013
Сообщений: 109
17.07.2022, 13:30  [ТС]
пробывал, та же ошибка
0
1 / 1 / 0
Регистрация: 03.02.2013
Сообщений: 109
17.07.2022, 23:10  [ТС]
Видимо это был косяк самого проекта. Создал новый проект и код запустился. Спасибо за помощ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.07.2022, 23:10
Помогаю со студенческими работами здесь

Не отрабатывает функция
Привет. Только начал разбираться в JS, столкнулся с проблемой. Есть такая функция. function prepend(el, list){ var newlist = { ...

Почему не отрабатывает функция
isPalindrome("dad"); function isPalindrome($text){ $text2 = " "; for ($i = 0;$i <= strlen($text);$i++){ $text2...

Не отрабатывает функция onselect
Здравствуйте! Напишите сценарий, который для точки, заданной координатами на плоскости, определяет расстояние до начала координат...

Функция отрабатывает некорректно
Доброго времени суток. Написала функцию и столкнулась с проблемой, что она некорректно возвращает значение (именно в else...

Не отрабатывает функция php
Не передаются данные на экране "Нет такого шаблона".function render($path,$param = array()) { extract($param); ob_start(); ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru