python类可以没有init吗_Python类没有使用def __init __(self)

我正在写一系列文本菜单.下面的类和子类运行没有问题.但我正在审查我的编码,我想知道….是否可以,我没有在类中使用def __init __(self)?我应该将数据成员放在def __init __(Self)中:如self.images =(),self.options =()?如果我这样做,那么我不能使用abc模块来限制,是否正确?

class BaseMenu(object):

__metaclass__ = abc.ABCMeta

@abc.abstractproperty

def options(self):

pass

@abc.abstractproperty

def menu_name(self):

pass

def display(self):

header = "FooBar YO"

term = getTerminalSize()

#sys.stdout.write("\x1b[2J\x1b[H")

print header.center(term, '*')

print self.menu_name.center(term, '+')

print "Please choose which option:"

for i in self.options:

print(

str(self.options.index(i)+1) + ") "

+ i.__name__

)

value = int(raw_input("Please Choose: ")) - 1

self.options[value](self)

class Servers(BaseMenu):

menu_name = "Servers"

images = ()

foo = ()

def get_images(self):

if not self.images:

self.images = list_images.get_images()

for img in self.images:

print (

str(self.images.index(img)+1) + ") "

+ "Name: %s\n ID: %s" %

(img.name, img.id)

)

def get_foo(self):

if not self.foo:

self.foo = list_list.get_list()

for list in self.foo:

print "Name:", list.name

print " ID:", list.id

print

def create_servers(self):

create_server.create(self)

options = (

get_images,

get_foo,

create_servers

)