2013-02-08 2 views
1

Я разработчик Python для разработчиков на C#.Как определить атрибут класса без значения по умолчанию в python

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

Например (это моя догадка о том, как это сделать):

class Spam 
    eggs = None 
    cheese = None 

Или это юридический:

class Spam 
    eggs 
    cheese 

Или что-то еще?

+1

Из 2 вариантов, которые вы предоставляете, первое является законным, но не обязательным. Если атрибуты не используются, нет необходимости их определять. Python динамически создает атрибуты. – Dhara

+1

@David: в зависимости от того, что вы хотите делать с переменными, вы можете захотеть добавить к ним 'self.' [см. Здесь] (http://stackoverflow.com/a/9056994/1860757). –

+0

Боже мой. По умолчанию атрибуты статичны. Спасибо за указание на это. – David

ответ

5

У вас нет. Вы назначаете атрибуты позже или устанавливаете их на None.

Атрибут без значения не является атрибутом. Будучи динамичным, отлично назначить атрибут позже, не объявляя его в классе.

+0

Ум, значит, вы имеете в виду, что мое первое предложение кода является правильным? – David

+0

@ Давид: действительно. Или вообще опустить «яйца» и «сыр». Это полностью зависит от того, чего вы пытаетесь достичь, какого API-класса будет представлять ваш класс. –

+0

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

Смежные вопросы