理解python的类实例化_Python中的类实例化

所以我找到了我感兴趣的这段代码,我想知道它最后一行的更多信息,这是:t = TelefonBok()。在

为什么需要它?代码只是一遍又一遍地调用它自己吗?在

不会占用很多记忆吗?它有没有可能只是return字典然后重新开始?在

这段代码是一个电话簿,打印和变量都是瑞典语。在class TelefonBok:

def __init__(self):

self.teleDic = {}

kommandonDic = {"add": self.add, "lookup": self.lookup,

"alias": self.alias, "save": self.save,

"load": self.load, "remove": self.remove, "quit": self.my_quit, "change": self.change}

while True:

x = raw_input("telebok> ") #prompt

y = x.split()

try:

kommandonDic[y[0]](*y[1:])

except KeyError:

print "Denna funktion finns inte"

except TypeError:

print "du skriver fel antal argument"

except SystemExit:

print "Bye Bye"

break

def find(self, namn):

hittade = 0

nr = 0

for number, names in self.teleDic.items():

if namn in names:

nr = number

hittade += 1

if hittade == 0:

return 0

elif hittade == 1:

return nr

else:

return -1

def add(self, namn, nummer):

print "Saving..."

self.teleDic[nummer] = [namn]

print "Save complete."

def lookup(self, namn = None):

if namn == None:

print "Ge ett namn!"

else:

hittade = 0 #Hittade är 0 från början

for number, names in self.teleDic.items():

if namn in names:

print number

hittade = 1

print "Done..."

if hittade != 1:

print "Namnet finns inte"

def alias(self, namn, newname):

if newname:

nr = self.find(namn)

if nr > 0: #om nr är större än 0...

self.teleDic[nr].append(newname)

print "alias inserted..."

def change(self, namn, newnumber, oldnr = None):

if namn:

nr = self.find(namn)

if nr > 0: #om nr är större en 0.

self.teleDic[newnumber] = self.teleDic[nr]

del self.teleDic[nr]

print "name changed..."

elif nr == 0:

print "Hittar inga med det nummer"

else:

if oldnr:

self.teleDic[newnumber] = self.teleDic[oldnr]

del self.teleDic[oldnr]

else:

print "Flera personer har detta namn, ge nummer"

def save(self, filename):

f = open(filename, "w")

for number, names in self.teleDic.items():

line = number + ";" + ";".join(names) + "\n"

f.write(line)

print "Saved..."

def load(self, filename):

self.teleDic = {}

f = open(filename, "r")

for line in f:

line = line.split(";")

nummer = line[0]

namn = line[1:]

self.teleDic[nummer] = namn

print "loading done..."

def remove(self, namn, nr=None):

nummer = self.find(namn)

if nummer > 0:

del self.teleDic[nummer]

print "Remove done..."

elif nummer == 0:

print "Namnet finns inte"

elif nummer == -1:

if nr:

del self.teleDic[nr]

else:

print "Flera personer har detta namn, ge nummer"

def my_quit(self):

print "Bye bye..."

raise SystemExit

t = TelefonBok()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值