python web框架企业实战详解(第六期)\第二课时-pickle&__eq__

1、python的值传递和引用传递区别,哪些类型值传,哪些是引用传递?
值传递和引用传递区别:依据对象是否可变来确定
和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值‘来传递对象。
python一般内部赋值变量的话,都是传个引用变量,和C语言的传地址的概念差不多。可以用id()来查询内存地址
如果a=b的话, a和b的地址是相同的;如果只是想拷贝,那么就得用 a=b[:]。

# -*- coding: cp936 -*-
#值传递
def f1(aa):
    aa=1
    print "id(aa)=" , id(aa)
    print aa

bb=123
print "id(bb)=" ,id(bb)
f1(bb)
print bb

#引用传递
def f2(aa):
    aa[0]=[1]
    print "id(aa)=" ,id(aa)
    print aa

bb=[123]
print "id(bb)=" ,id(bb)
f2(bb)
print bb

>>>
id(bb)= 30778664
id(aa)= 30778144
1
123
id(bb)= 44761936
id(aa)= 44761936
[[1]]
[[1]]
>>>

2、使用python编写一个命令程序:里面保存了若干用户成员的信息,用户只有登陆后才能查看这些用户的信息。即:用户启动python脚本,然后输入用户名密码登陆成功后,使用命令可以查看其他用户信息
# -*- coding: cp936 -*-
class MyUser(object):
    def __init__(self,username,password):
        self.username=username
        self.password=password
    def __del__(self):
        pass
    def __str__(self):
        return str(‘username=%s,password=%s‘ % (self.username,self.password))
    def __eq__(self,other):
        return self.username==other.username and self.password==other.password

import pickle
dir(pickle)
user1=MyUser(‘karliao‘,‘123456‘)
user2=MyUser(‘test‘,‘123‘)
fa=open(‘e:/aa.txt‘,‘w‘)
pickle.dump(user1,fa,2) ##0->文本形式、1,2->二进制形式
pickle.dump(user2,fa,2)
fa.close()

fr=open(‘e:/aa.txt‘,‘r‘)
users=[]
while True:
    try:
        user=pickle.load(fr)
        users.append(user)
    except EOFError,e:
        break

username=raw_input(‘Please input your username:‘)
password=raw_input(‘Please input your password:‘)

curUser=MyUser(username,password)
if curUser in users:
    for user in users:
        print user

>>>
Please input your username:test
Please input your password:123
username=karliao,password=123456
username=test,password=123
>>> ================================ RESTART ================================
>>>
Please input your username:test
Please input your password:111
>>> 

--eof--

时间: 2024-10-16 17:38:56

python web框架企业实战详解(第六期)\第二课时-pickle&__eq__的相关文章

python web框架企业实战详解(第六期)\第四课时-webpy&django

查找收集python的IDE,并分析各自优缺点:选择自己喜欢的IDE搭建各自的webpy和django环境,最后截屏就作业. PyCharm PyCharm是由JetBrains打造的一款Python IDE. PyCharm具备一般 Python IDE 的功能,比如:调试.语法高亮.项目管理.代码跳转.智能提示.自动完成.单元测试.版本控制等. 另外,PyCharm还提供了一些很好的功能用于Django开发,同时支持Google App Engine,更酷的是,PyCharm支持IronPy

python web框架企业实战详解(第六期)\第一课时-sorted&if&for

1.元组和列表的区别? 元组:用元括弧括起来的一组元素集合.其特点是内容丌可变,即一旦定义其长度和内容都是固定的:类似于C询言的数组. 列表:由中括弧括起来的包含一组元素的集合:其特点是长度和内容都可以改变.可以理解为java中的链表数组. 2.python中分割列表用什么方式? L = [0, False, 'l','AA','BBB'] print L[1:],L[:1],L[1:2],L[-1] 3.python中怎么进行多行注释? 采用三个单引号或者双引号括起来,如: def foo()

python web框架企业实战详解(第六期)\第三课时-ajax&jquery&webpy

main.py __author__ = 'Liao' import web import time urls = ( '/gettime','gettime', '/(.*)', 'hello' ) app = web.application(urls, globals()) class gettime: def GET(self): asctime=time.asctime() print asctime return asctime def POST(self): return self.

python web框架企业实战详解(第六期)\第三课时-css&bootstrap

raw css: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"> p.ex1 { font:italic arial,sans-serif; } p.ex2 { font:italic bold 12px/3

doraemon的python django框架的路由详解(国庆大更新)

### 11.8 路由 #### 11.8.1 urlconf ```python from django.conf.urls import url from app01 import views urlpatterns = [ url(r'^admin/',admin.site.urls), #这里用到了正则 url(r'^home',views.home,{},name='home'), ] ``` #### 11.8.2 分组和命名分组 url上捕获的都是字符串 分组 ```python

django定时任务python调度框架APScheduler使用详解

# coding=utf-8 2 """ 3 Demonstrates how to use the background scheduler to schedule a job that executes on 3 second 4 intervals. 5 """ 6 7 from datetime import datetime 8 import time 9 import os 10 11 from apscheduler.schedul

python调度框架APScheduler使用详解

# coding=utf-8 2 """ 3 Demonstrates how to use the background scheduler to schedule a job that executes on 3 second 4 intervals. 5 """ 6 7 from datetime import datetime 8 import time 9 import os 10 11 from apscheduler.schedul

Django企业开发实战 高效Python Web框架指南

高清PDF,带书签 Django企业开发实战 高效Python Web框架指南Django企业开发实战 高效Python Web框架指南Django企业开发实战 高效Python Web框架指南gACkM793118 粘贴链接到地址栏访问: https://fgk.pw/i/gACkM793118 原文地址:https://www.cnblogs.com/ziqang/p/11051134.html

Web开发典藏大系:Web性能测试实战详解 PDF扫描版

本书主要讲解了大数据背景下的Web性能测试的特点和方法,以及使用业内应用非常广泛的工具――LoadRunner 11进行性能测试的具体技术与技巧.本书理论结合实践,讲解图文并茂,并且将IT技术与生活场景结合起来,生动而又形象. 本书共17章,分为5篇.第1篇介绍软件测试的定义.方法和过程.Web应用开发与测试等内容:第2篇介绍Web应用技术.Web性能测试的基础.Web性能测试的方法和各操作系统性能计数器的获取等内容:第3篇介绍如何使用LoadRunner进行Web应用性能测试,包括LoadRu