python类的问题

xuzhijian17 2011-06-22 03:05:11
[code=#coding]=gbk
import os,sys
import hashlib


def sha1():
files=raw_input("Drag the file into here:")
f=open('sha1.txt','w')
if os.path.isfile(files):
f1=open(files,'rb')
sha1obj=hashlib.sha1()
sha1obj.update(f1.read())
hashs=sha1obj.hexdigest()
print hashs
f.write(hashs+'\n')
f.close()
else:
for x,y,z in os.walk(files):
for a in z:
h=os.path.join(x,a)
f1=open(h,'rb')
sha1obj=hashlib.sha1()
sha1obj.update(f1.read())
hashs=sha1obj.hexdigest()
print hashs
f.write(hashs+'\n')
f.close()
def md5():
files=raw_input("Drag the file into here:")
f=open('md5.txt','w')
if os.path.isfile(files):
f1=open(files,'rb')
md5obj=hashlib.md5()
md5obj.update(f1.read())
md5s=md5obj.hexdigest()
print md5s
f.write(md5s+'\n')
f.close()
else:
for x,y,z in os.walk(files):
for a in z:
h=os.path.join(x,a)
f1=open(h,'rb')
md5obj=hashlib.md5()
md5obj.update(f1.read())
md5s=md5obj.hexdigest()
print md5s
f.write(md5s+'\n')
f.close()

def main():
r=raw_input("please input 'sha1' or 'md5':")
if r=='sha1':
sha1()
elif r=='md5':
md5()
else:
print "error"

if __name__=='__main__':
main()
[/code]
这是个求md5值和sha1值的程序,怎么放在类中写啊?(我是想把这段代码用类的方式写出来,但本人对类和对象一直很模糊,所以希望有人能帮我转换成有含类的代码)
...全文
90 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
HelloVisaya 2011-07-01
  • 打赏
  • 举报
回复
[code=#coding]=gbk
import os,sys
import hashlib

class TT:
def sha1():
files=raw_input("Drag the file into here:")
f=open('sha1.txt','w')
if os.path.isfile(files):
f1=open(files,'rb')
sha1obj=hashlib.sha1()
sha1obj.update(f1.read())
hashs=sha1obj.hexdigest()
print hashs
f.write(hashs+'\n')
f.close()
else:
for x,y,z in os.walk(files):
for a in z:
h=os.path.join(x,a)
f1=open(h,'rb')
sha1obj=hashlib.sha1()
sha1obj.update(f1.read())
hashs=sha1obj.hexdigest()
print hashs
f.write(hashs+'\n')
f.close()
def md5():
files=raw_input("Drag the file into here:")
f=open('md5.txt','w')
if os.path.isfile(files):
f1=open(files,'rb')
md5obj=hashlib.md5()
md5obj.update(f1.read())
md5s=md5obj.hexdigest()
print md5s
f.write(md5s+'\n')
f.close()
else:
for x,y,z in os.walk(files):
for a in z:
h=os.path.join(x,a)
f1=open(h,'rb')
md5obj=hashlib.md5()
md5obj.update(f1.read())
md5s=md5obj.hexdigest()
print md5s
f.write(md5s+'\n')
f.close()

def main():
r=raw_input("please input 'sha1' or 'md5':")
aa = TT()
if r=='sha1':
aa.sha1()
elif r=='md5':
aa.md5()
else:
print "error"

if __name__=='__main__':
main()
Inpool 2011-07-01
  • 打赏
  • 举报
回复
python中一切都是对象。123的常量也是对象,函数实际上也是特殊的对象,类也是特殊的对象。定义一个函数或者定义一个类其实就是在创建具有特殊功能的对象。也就是说一个简单的函数也可以用类实现,比如:
def print_func(*lines):
print(*lines)

class print_cls:
def __new__(cls,*lines):
print(*lines)

print_func("line1","line2","line3")
print_cls("line1","line2","line3")

这里调用print_func和调用print_cls的效果是一样的
livesguan 2011-06-22
  • 打赏
  • 举报
回复
个人觉得一个类代表一个对象,PYTHON很灵活的,如果你不知道什么什么叫面向对象,可以换本相关的书藉.慢慢来,不要着急.
上帝无言 2011-06-22
  • 打赏
  • 举报
回复
python核心编程,你看看讲 类的那一章,写的很清楚的。
iambic 2011-06-22
  • 打赏
  • 举报
回复
这是错误的学习方式。使用错误的技术解决错误的问题,即使学会了语法,你写出来的也是烂代码,这是任何有追求的程序员都应该避免的。学一个东西,理解比真正的使用还重要。即使你忘了语法(很常见),你也可以看下文档或者代码回忆起来。但是一个人如果不自觉,可能永远都在写烂代码。
xuzhijian17 2011-06-22
  • 打赏
  • 举报
回复
我就是想学怎么用类写啊?方便我学习啊。
iambic 2011-06-22
  • 打赏
  • 举报
回复
一个函数写成类干啥?典型的OO滥用。
不知道怎么OO,看些别人的OO代码,比如python标准库里的。

37,718

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧