关于封装的疑惑

关于封装的疑惑

比如a=8%3
b=a
b是不是就可以看做是封装,他仅仅代表结果2而已,不代表8%3这个过程了?
也就是仅仅将a的值赋予给了b
也就是b=2但是并不代表b=8%3
请问是否这样理解
不要瞎套概念,不是什么封装
b=a,只是把a赋值给b而已,而a值是怎么来的,跟b不相关
import cPickle as p
import string
a='hello world'
f=file('text','w')
p.dump(a,f)
f.close()
f=file('text','r')
print f.read()
打印出来的结果是
S'hello world'
p1
.
为什么不是'hello world' ???


有人告诉我是封装啊 他说写到python里的是对象 请问怎么理解?


QUOTE:
原帖由 zhenglxd 于 2009-2-6 12:49 发表
import cPickle as p
import string
a='hello world'
f=file('text','w')
p.dump(a,f)
f.close()
f=file('text','r')
print f.read()
打印出来的结果是
S'hello world'
p1
.
为什么不是'hello worl ...

你可以查看下cPickle模块,简单的来说就是里面的方法把你py中的数据结构,比如字典,或者数组等进行格式化,然后写入文件
下次可以从文件中直接取出,放到当前py环境中直接使用,文件中的数据并不是你平常看到的那种格式,是方便py解释的格式了。
你还可以看看pack和unpack方法。

另外四楼的朋友请不要到处灌水了。
还在问这个问题,封装不仅仅是针对数据结构,而是python对象。
看下面,希望你能搞明白。
import pickle as p
import string
def a():
        print 6
        
f=file('text','w')
p.dump(a,f)
f.close()
f=file('text','r')
print f.readlines()
f.seek(0)
c= p.load(f)
c()

再试试这个

import pickle as p
import string
class a():
        def i(self):
                print 6
f=file('text','w')
p.dump(a,f)
f.close()
f=file('text','r')
print f.readlines()
f.seek(0)
#我可以把text文件发给别人,他打开文件可以
c= p.load(f)
d=c()
d.i()

封装的概念不是这样子的,粗粗的讲,如public、private、protected这些概念。
b = a,意味着引用复制,地址是一样的,b的值当然也等于2。


QUOTE:
原帖由 lujx 于 2009-2-8 16:34 发表
封装的概念不是这样子的,粗粗的讲,如public、private、protected这些概念。
b = a,意味着引用复制,地址是一样的,b的值当然也等于2。

封装并不只有这一种意思,比如网络编程里数据在协议栈里向下传递是不是也可以看作是一个封装的过程?这里说的封装当然不是oop里封装的概念,把对象序列化成一个字符串表达这个过程称为封装并不奇怪、


QUOTE:
原帖由 lujx 于 2009-2-8 16:34 发表
封装的概念不是这样子的,粗粗的讲,如public、private、protected这些概念。
b = a,意味着引用复制,地址是一样的,b的值当然也等于2。

多说一句即使是在oop中封装也不是指public、private、protected这些概念。
还是多看些面向对象的书再讨论吧。许多基础概念都没弄懂啊。