Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 14, 2012 11:46:50

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

Перегрузка "=" в python 2.7

cutwater
Так вот то что вы просите мягко говоря трудно реализуемо, а по сути на выходе вы таки получите другой язык.

я знаю что это будет другой язык, потому я и говорю что в вашу религию я не лезу

Офлайн

#2 Ноя. 14, 2012 11:48:17

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Перегрузка "=" в python 2.7

Так пишите на С++. С++ позволяет перегружать оператор =.
Фокус в том что в С++ инициализация объекта через = и присваивание объекту значения - разные понятия.

В конце концов используйте операторы например <<
Их то можно перегружать.



Отредактировано cutwater (Ноя. 14, 2012 11:51:13)

Офлайн

#3 Ноя. 14, 2012 11:53:02

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Перегрузка "=" в python 2.7

x0a
Добрый день,Насколько мне известно перегрузка “=” в питоне невозможна,если не считать метод __setitem__, но вариант obj = 2 мне неподходит,требуется obj = 2Нужен патч для питона реализующий перегрузку “=”,Пожалуйста помогите написать такой патч за денежное вознаграждение.


#!/usr/bin/env python
# -*- coding: utf-8 -*-
import collections
class Point(object):
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def __get__(self, obj, objtype):
        return (self.x, self.y)
    def __set__(self, obj, val):
        if isinstance(val, collections.Iterable) and len(val)==2:
           self.x = val[0]
           self.y = val[1]
class MyClass(object):
    p = Point(10, 20)
m = MyClass()
print m.p
m.p=(2,4)
print m.p

Так пойдет?



Офлайн

#4 Ноя. 14, 2012 11:56:08

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

Перегрузка "=" в python 2.7

cutwater
Так пишите на С++. С++ позволяет перегружать оператор =.
проект на для с++, в данном случае скорость разработки важнее скорости выполнения

cutwater
Фокус в том что в С++ инициализация объекта через = и присваивание объекту значения - разные понятия.
и то и другое есть событие которое можно перехватить, чтото с ним сделать или остановить,
так что понятия может и разные, но мне это не важно.

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

Офлайн

#5 Ноя. 14, 2012 11:57:05

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Перегрузка "=" в python 2.7

cutwater
FishHook, ты проверял? Это будет работать если x и y являются членами класса а не объекта
Откуда я знаю, зачем ему нужна перегрузка “=”, может быть в его задачах достаточно атрибутов класса.



Офлайн

#6 Ноя. 14, 2012 11:58:01

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Перегрузка "=" в python 2.7

Нет, я серьезно спрашиваю, готовы ли Вы нанять комманду разработчиков, которые за минимальные сроки и несколько десятков тысяч долларов на базе питона состряпают вам новый язык. При этом я называл 2 месяца как очень оптимистичные сроки.



Офлайн

#7 Ноя. 14, 2012 11:58:04

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Перегрузка "=" в python 2.7

Свойства тоже не нравятся?



Офлайн

#8 Ноя. 14, 2012 11:58:32

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Перегрузка "=" в python 2.7

FishHook, сорри, я бегло просмотрел твой код и не увидел MyClass



Офлайн

#9 Ноя. 14, 2012 11:58:41

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

Перегрузка "=" в python 2.7

FishHook
Так пойдет?

к сожалению нет, я приводил примерно такойже пример в первом сообщение,
надо именно m = ( 2, 4) без . или [ после m

Отредактировано x0a (Ноя. 14, 2012 12:00:35)

Офлайн

#10 Ноя. 14, 2012 12:01:15

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Перегрузка "=" в python 2.7

И всё-таки я предлагаю не страдать фигнёй и изучить питон.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version