Найти - Пользователи
Полная версия: Помогите понять плюсы Питона в сравнении с#(+ Visual Studio)
Начало » Python для новичков » Помогите понять плюсы Питона в сравнении с#(+ Visual Studio)
1 2 3 4
FishHook
Yuri197
На бытовом уровне я знаю. Я не знаю, что это значит по отношению к питону. Могу предположить, что вы имели в виду операцию сложения двух переменных, но в этом случае, вам бы тоже следовало бы сначала подумать ибо в питоне разрешена операция суммирования для любых типов.
doza_and
Yuri не надо обижаться. Термин добавить в самом деле используется с контейнерами, но наверное вы не это имеете ввиду.
Вот как присвоить объекты разного типа:
 a=2
a="2"
вот как добавить:
 a=[]
a.append(2)
a.append("2")
ни первое ни второе не вызывает проблем.
Yuri197
Я вот даже не представляю, как это можно сделать.
По сути вы задали вопрос, но не очень ясно что именно у вас не получается.
Yuri197
doza_and
Yuri не надо обижаться.
Я не обижаюсь, я просто точно знаю, что будет в результате. А тратить 2-3 часа на совершенно мне не нужный спор и портить себе настроение не хочу.
doza_and
По сути вы задали вопрос, но не очень ясно что именно у вас не получается.
Как известно, каждый тип занимает определенное количество байт в памяти. Строго типизированный язык от слабо типизированного отличается наличием комплекса мер, который не позволяет передавать в память одного типа значение другого типа. А Python типы строго контролирует. То есть Python - язык строго типизированный (о чем, кстати, в той-же википедии открытым текстом написано). Я не вопрос задавал, я имел в виду, что мне неизвестен способ обмануть интерпретатор. Например:
ts1 = "строка"
print(type(ts1))
ts2 = 10
print(type(ts2))
ts3 = 1.5
print(type(ts3))
# Сложить строку с int не выйдет.
# ts4 = ts1 + ts2
# Сложить строку с float не выйдет.
# ts4 = ts1 + ts3
ts4 = ts2 + ts3
print(type(ts4))
ts4 = "Новая строка"
print(type(ts4))
Хоть слагай, хоть присваивай, а тип все равно будет соответствующий значению.
FishHook
Yuri197
тип все равно будет соответствующий значению
А! Ну вот теперь то все понятно! Я вас сразу не узнал в гриме, Капитан Очевидность, вы извините. Тип, сответсвует значению, это железно.
Но есть один нюанс… Дело в том, что метод __add__ может принимать что угодно и возвращать что угодно, и ваше утверждение неверно.

Yuri197
я просто точно знаю, что будет в результате.

 class Foo:
     def __add__(self, other):
          return random.choice([int, float, bool])()     
точно знаете????
Yuri197
FishHook
Я вас сразу не узнал в гриме, Капитан Очевидность, вы извините.
Объяснялось не вам, а автору темы. Но не поняли почему-то вы.
FishHook
точно знаете????
Ни о чем. Когда я говорил, что точно знаю, я имел в виду результат спора с вами. А не случайный результат переопределения встроенного метода, который поведение интерпретатора ни разу не отменяет.

Впрочем, больше я вас кормить не буду.
JOHN_16
Yuri197
ну ваш же пример и ломает ваше же высказывание
 >>> ts2 = 10
>>> ts3 = 1.5
>>> t4 = ts2 + ts3
>>> print(t4)
11.5
>>> print(list(map(type, (ts2, ts3, t4))))
[<class 'int'>, <class 'float'>, <class 'float'>]
два разных типа, а сложить удалось. И про память тут высказывания лишние.
DezmontDeXa
Вы считаете себя программистом, не зная ассемблера и Си

Я говорил, что считаю себя программистом? Я говорил лишь о том, что до питона изучал шарп. Это раз.
А во-вторых, что за бред?! Знать ассемблер и Си? Нахрена, если мне не нужен доступ к железу напрямую? Если .net мне хватает для решения 80% моих задач, а оставшееся перекрывается библиотеками.

Вы можете сколько угодно кичиться своими знаниями, но это бред. Если хочешь делать игры - делай игры. Хочешь делать движки для игр - делай движки для игр. Не обязательно знать как работает Unity/Unreal, что бы делать на них игры. Тем более не важно знать ассемблер или Си для разработки игр.
Я уверен, что уже сейчас найдется геймдев, который пилит хорошие игры, без знаний ассемблера. Скорее всего эти игры будут лучше, чем то, что вы можете предложить на Си за то же время.

Вы несете хуйню и ищите срача, как уже сказали. Спасибо, за ваши скрины и подсказки. Жаль что для всего это пришлось испортить себе настроение. Надеюсь, вы подняли свою самооценку, тогда из этого хоть-кто-то получил плюшку.
Yuri197
JOHN_16
И про память тут высказывания лишние.
Согласен, лишнее. Все объект. Но хотелось объяснить попроще то, что я имел в виду. Да и смысл то все равно, в конечном итоге в безопасном обмене данными в памяти.
JOHN_16
два разных типа, а сложить удалось.
Значения int и float складываются разумеется. Точнее, int будет приведен самим интепретатором к float, потом будут сложены два значения float. Результат будет float. Нет никакого противоречия. Интерпретатор следит за типами.
PEHDOM
DezmontDeXa
Я уверен, что уже сейчас найдется геймдев, который пилит хорошие игры, без знаний ассемблера.
вы удивитесь но есть геймдевы котороые пилят игры даже не зная ни одного ЯП.
https://ru.wikipedia.org/wiki/Construct_2
И да на этом можно написать нормальную игру, и даже есть преценденты. НО ведь вопрос не в этом.
DezmontDeXa
Не обязательно знать как работает Unity/Unreal, что бы делать на них игры. Тем более не важно знать ассемблер или Си для разработки игр.
Да не обязательно знать как работает Unity/Unreal, что бы делать на них игры, но если вы занете, то сможете лучше/быстрее/эффективнее использовать их возможности. А то я смотрю что геймдев сейчас скатится ниже плинтуса, и какаянить современная реинкарнация арканоида, котороый ранее шел на 486-м с 4 Мб оперативы сейчас хочет коре i3 и 8Гб РАМы, иначе ни-ни.

DezmontDeXa
Или все-таки есть какой-то нормальный способ кодить методом набора кода, а не методом копипаста из браузера?
Ага использовать нормальную ИДЕ вместо поделия от МС. Их и под венду более чем достаточно, PyScripter, PyCharm, PyDev, Spider, NetBeans… это те что сходу пришли в голову, если погуглить то можно найти еще с десяток. Попробуйте пару- ройку и найдите наиболее подходящий именно вам.
JOHN_16
Yuri197
Значения int и float складываются разумеется. Точнее, int будет приведен самим интепретатором к float, потом будут сложены два значения float. Результат будет float. Нет никакого противоречия. Интерпретатор следит за типами.
Ну а как он следит? По общему правилу, за это отвечает метод __add__
 help(int.__add__)
Help on wrapper_descriptor:
__add__(self, value, /)
    Return self+value.

То есть можно написать класс наследуемый от строки, сложить это с числом и в результате получить словарь. А вот встроенные типы данных защищены (надо смотреть исходный код что бы точно сказать как именно) от изменений. Поэтому и говорят уверенно про строгую типизацию ( имея ввиду в общем то встроенные типы данных)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB