LINUX.ORG.RU
ФорумTalks

Почему у питона батарейки севшие?

 ,


2

2

ну вот, подфартила шабашка - надо накропать на джанге унутренний сервис.

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

- объект в json не засовывается (только словарь)

- тип надо указывать, в комментарии! # type: RageString

- модель джанги хитронаговнякана так что ide пишет, мол Model.objects - в первый раз вижу

- снять дамп потоков? фиг вам!

- прервать поток если приложение тушат? лови сигналы и катай солнце вручную!

И эти люди говорят про батарейки!

Deleted

Последнее исправление: Deleted (всего исправлений: 1)

Ответ на: комментарий от Deleted

зачем мне возвращать функцию?

Замыкание (англ. closure) в программировании — функция первого класса, в теле которой присутствуют ссылки на переменные, объявленные вне тела этой функции в окружающем коде и не являющиеся её параметрами. Говоря другим языком, замыкание — функция, которая ссылается на свободные переменные в своём контексте.

функция понял?

dmxrand
()
Ответ на: комментарий от dmxrand

функция понял?

Почему не выражение, не операция, не метод, а именно функция?

Может быть автор языка использовал терминологию, отличную от авторов других языков? Может, автор перевода накосячил? Может, наконец, Википедию заполняют всяким шлаком? :)

lochness
()
Ответ на: комментарий от dmxrand

функция

там их две было, понял?©

Deleted
()
Ответ на: комментарий от lochness

Может быть автор языка использовал терминологию, отличную от авторов других языков?

Может. Но для чего вообще замыкания? Хочешь ты посчитать площадь, но у тебя есть только ширина. А длины нет. Вот тебе замыкание:

>>> def square(height):
...     def func(width):
...         return height*width
...     return func
... 
>>> square(10)
<function square.<locals>.func at 0x7f4bbf6e8a60>
>>> z=square(10)
>>> z(5)
50
>>> z(3)
30
>>> 

dmxrand
()
Ответ на: комментарий от Deleted

знаешь такого мужука

Как будто он не может выдать дичь. Кто эти аннотации проверяет-то хоть?

И расскажи, зачем ты их вообще прикрутил?

i-rinat ★★★★★
()
Ответ на: комментарий от lochness

тому шо ботва это с функционального программирования идет, только штука эта сложная,

потому и выходит, что некоторые принимают это за некий ритуал - не вернул функцию - замыкания нет

Deleted
()
Ответ на: комментарий от lochness

вот с локальными переменными:

>>> def square():
...     height = 10
...     def func(width):
...         return height*width
...     return func
... 
>>> square()
<function square.<locals>.func at 0x7fc136392a60>
>>> z=square()
>>> z(5)
50
>>> z(3)
30
>>> 

dmxrand
()
Ответ на: комментарий от i-rinat

вот хз, надо потыкать проверяет ли интерпретатор, но ide проверяет и автокоплит с проверками фурычат, и то хорошо

Deleted
()
Ответ на: комментарий от dmxrand

Может.

Значит, цепляться к терминологии, тем более такой шаткой, не стоит.

Но для чего вообще замыкания?

Синтаксический сахар. Нет математической задачи, которую невозможность решить простым императивным языком.

lochness
()
Ответ на: комментарий от Deleted

Получите распишитесь:

>>> def square():
...     height = 10
...     def func(width):
...         return height*width
...     return func(5)
... 
>>> square()
50
>>> def square(height):
...     def func(width):
...         return height*width
...     return func(5)
... 
>>> square(3)
15
>>> 

dmxrand
()
Ответ на: комментарий от dmxrand

Но для чего вообще замыкания?

для «коллбеков» модифицирующих этот самый локальный контекст

Deleted
()
Ответ на: комментарий от Deleted

потому и выходит, что некоторые принимают это за некий ритуал - не вернул функцию - замыкания нет

Один умник на моём Раби замыкание написал. Ну я уволил его потом. Нефиг. Ещё бы метапрограммирование притащил, ублюдок.

lochness
()
Ответ на: комментарий от dmxrand

и что это за хрень? разницу между чтением переменной и записью в оную ты видишь? а фишка именно в этом

Deleted
()
Ответ на: комментарий от lochness

ты забыл добавить «шерсть в носу» © Кулак из Улитка на склоне (Стругацкие)

Deleted
()
Ответ на: комментарий от Deleted

с 3го питона

ну ретрограды пускай страдают

Dred ★★★★★
()
Ответ на: комментарий от Deleted

разницу между чтением переменной и записью в оную ты видишь?

Вообще это называется сторонние эффекты. За это надо бить батогами. Есть понятие «чистая функция».

dmxrand
()
Ответ на: комментарий от dmxrand

Есть понятие «чистая функция».

ох лол, в языке где даже констант нету, не смеши меня. По понятиям базарят функциональщики у которых все иммутабельное. А питон это такой толстый троллинг этой идеи. Где даже если захочешь не сможешь ничего сделать 8)

Deleted
()
Ответ на: комментарий от Deleted

Еще раз кто тебе мешает написать

z=10
z=func(z)

В JS меняется this поэтому приходится писать:

var z=Object();
var that=this;
func(z);

а в func уже используем that

dmxrand
()
Ответ на: комментарий от i-rinat

не если уже написал то уже ничего не поделаешь 8)

Deleted
()
Ответ на: комментарий от Deleted

ох лол, в языке где даже констант нету, не смеши меня.

Ну если ты хочешь строчить в присядку:

# Put in const.py...:
class _const:
    class ConstError(TypeError): pass
    def __setattr__(self,name,value):
        if self.__dict__.has_key(name):
            raise self.ConstError, "Can't rebind const(%s)"%name
        self.__dict__[name]=value
import sys
sys.modules[__name__]=_const()

# that's all -- now any client-code can
import const
# and bind an attribute ONCE:
const.magic = 23
# but NOT re-bind it:
const.magic = 88      # raises const.ConstError
# you may also want to add the obvious __delattr__

Только НАФИГА?

dmxrand
()
Ответ на: комментарий от Deleted
class _const:

    class ConstError(TypeError): pass

    def _ _setattr_ _(self, name, value):
        if self._ _dict_ _.has_key(name):
            raise self.ConstError, "Can't rebind const(%s)"%name
        self._ _dict_ _[name] = value

    def _ _delattr_ _(self, name):
        if self._ _dict_ _.has_key(name):
            raise self.ConstError, "Can't unbind const(%s)"%name
        raise NameError, name

const.magic = 23
const.magic = 88      # would raise const.ConstError
del const.magic       # would raise const.ConstError
dmxrand
()
Ответ на: комментарий от Deleted

Да ты уже писал. Вопрос НАФИГА? ЯП динамический и это хорошо. В Java и С# лепят динамику постоянно.

dmxrand
()

На моём, ламерском уровне, питон - если не лучший,от самый лучший язык. А всякие джанги должны гореть в огне. Мало того, что непонятно зачем это, так ещё и требует навешивания ещё всякой фигни.

Deleted
()
Ответ на: комментарий от Deleted

хз зачем ты заикнулся 8)

Ты сказал, что такого сделать нельзя. Ну вот. Хочешь можешь себе хоть голову прострелить...

dmxrand
()
Ответ на: комментарий от Deleted

А всякие джанги должны гореть в огне.

Два чая этому товарищу.

dmxrand
()
Ответ на: комментарий от dmxrand

в языке где даже констант нету, не смеши меня

Ты сказал, что такого сделать нельзя.

читать не умеешь? 8)

Deleted
()
Ответ на: комментарий от dmxrand

выкинули если б они были, а так просто не добавили нужные, ну по неопытности, с кем не бывает.

Deleted
()
Ответ на: комментарий от Deleted

выкинули если б они были

В логику умеешь? Их нет потому, что их выкинули. Или вот не делали потому, что они в 90% НЕ НУЖНЫ

dmxrand
()

объект в json не засовывается (только словарь)

Окуеть, покажи упакованый в JSON объект с методами, если тебе с обеъекта нужно получить словарь, то это делается явно obj.__dict__

Model.objects - в первый раз вижу

Там, вообще-то, Manager сидит.

Ну, и дальше в таком духе, рано тебе еще Python трогать. Джавистам, так же как Джаваскритописателям не в коем случае лучше не покидать свои замечательные мирки.

BigAlex ★★★
()
Ответ на: комментарий от dmxrand

выкинули если б они были

В логику умеешь? Их нет потому, что их выкинули.

ох лол, и в какой версии они были?

Deleted
()
Ответ на: комментарий от BigAlex

Оно не понимает. Оно предложило throwOut. Я ему задал вопрос что будет если поле x это хэндл открытого файла... Тишина.

dmxrand
()
Ответ на: комментарий от BigAlex

покажи упакованый в JSON объект с методами

омг, зачем тебе методы в json, ты там распечатки питона раскурил?

Там, вообще-то, Manager сидит.

а то я не в курсе, ты такой смешной ей б-гу

Deleted
()
Ответ на: комментарий от dmxrand

ну я щас открыл яндекс картинки, там написал «трактор» и он появился на мониторе, а монитор стоит дома.

с точки зрения материализма, это трактор дома?

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.