Найти - Пользователи
Полная версия: Определение свойств класса без метода __init__
Начало » Python для новичков » Определение свойств класса без метода __init__
1 2 3
Rudium
Отсутствие скобок после Class во втором случае не опечатка?
doza_and
ayb
Тут то как раз экземпляр создан
Вы абсолютно правы. Но init вызыватся автоматически поэтому по вашему методу будет
class Ta:
   pass
a=Ta()
a.x1=1
a.x2=2
a.x3=a.x1+a.x2
b=Ta()
b.x1=1
b.x2=2
b.x3=b.x1+b.x2

а с инитом
class Ta:
   def __init__(self):
       self.x1=1
       self.x2=2
       self.x3=self.x1+self.x2
a=Ta()
b=Tb()
те код с init сокращает код при многократном создании объектов. Делает объекты единообразнее.
FishHook
Какое к черту связывание, что вы несете?
Экземпляр создается вот так
cls = Class()
при этом всегда вызывается метод __init__.
class Class:
     def __init__(self):
           self.a = time.time()
у каждого созданного экземпляра “а” будет уникальным.
FishHook
Rudium
Отсутствие скобок после Class во втором случае не опечатка?
читайте учебник!
doza_and
FishHook
Экземпляр создается вот так
самое смешное что он так и сделал. Только переопределил ключевое слово класс на всякий случай.
и не создал второй экземпляр. Поэтому нам непонятно как он собирается это делать.
Если будет так
class_instance = Class()
то мы его легко уличим что связь с классом а не с экземпляром.
Rudium
Первый день изучаю классы)) И поменьше ненависти и ругани, пожалуйста.
old_monty
Rudium
Например:
class Class():
a = 5

class = Class()
print(class.a) #выведет 5
В Python 3 до вывода числа 5 вообще не дойдет, т.к. в качестве имени ссылки Вы используете ключевое слово.
>>> class Class:
...    a = 5
... 
>>> class = Class()
  File "<stdin>", line 1
    class = Class()
          ^
SyntaxError: invalid syntax
UPD: В Python 2.7 будет та же самая ошибка.
doza_and
Rudium
И поменьше ненависти и ругани, пожалуйста.
Постараемся, но вы сам начали.
Rudium
не надо ля ля
в питоне это нетак устроено как в javascript.
вы про prototipe слышали?
Rudium
Да. Я ошибся. Скобки не нужны в определении класса. Но странно что это не вызвало ошибку. Работает как со скобками, так и без.
Rudium
Как я понял __init__ нужен лишь для того, чтобы при создании экземпляра можно было указать параметры в скобках, вместо переопределения их после, отдельными выражениями. Это единственное отличие и удобство.
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