python 难点记录

1.类 和对象:

1.类对象,实例对象 2.类成员,实例成员 3.类函数,实例函数  ---------- 需要理解之前的关系,能够相互调用,作用范围

问题:

#类内

#1.类方法中能否访问 实例属性?                                                 不行

#2.类方法总访问修改实例属性                                                    cls.country

#3.实例方法中能否访问类属性?修改类属性?                            可以,无效  self.county

#4.实例方法中访问修改实例属性                                                 self.a

#类外

#1.实例对象能否访问类属性?修改类属性?                               可以,无效

#2.类对象能否访问实例属性?                                                    不行

#3.实例对象能否访问类方法?                                                    可以,可以通过类方法修改类属性

#4.类对象能否访问实例方法?                                                    不行

2.python的变量及存储方式

(转自http://www.cnblogs.com/Eva-J/p/5534037.html)

然后理解变量的赋值,浅拷贝,深拷贝

1.变量的赋值:

1.str的赋值

2.数据结构的赋值

2.浅拷贝:

浅拷贝只会copy一层当sourceLst列表发生变化,copyLst中存储的lst内存地址没有改变,所以当lst发生改变的时候,sourceLst和copyLst两个列表就都发生了改变。这种情况发生在字典套字典、列表套字典、字典套列表,列表套列表,以及各种复杂数据结构的嵌套中,所以当我们的数据类型很复杂的时候,用copy去进行浅拷贝就要非常小心。。。

3.深拷贝

深拷贝会完全复制原变量相关的所有数据,在内存中生成一套完全一样的内容,在这个过程中我们对这两个变量中的一个进行任意修改都不会影响其他变量

3.函数的参数:

  • 1.普通参数:传参时,需要按照函数定义的参数数量,及类型 进行传参
  • 2.默认参数:参数写上默认值,且必须放在所有参数的最后
  • 3.动态参数:
    • def func1(*args) 接受多个参数,内部自动构造元组,序列前加*,会把传入的参数构造为一个元组 注意:fun() argument after * must be an iterable, not int:数组、字符串、列表都是iterable的
    • def func2(**kwargs) 接收多个参数,内部自动构造字典,序列前加**,直接传递字典
      def func3(*args,**kwargs):接受多个参数,既可以自动构造元组,又可以自动构造字典。

  4.函数的返回:返回多个值,以元组的形式返回

例子:

def fun1(*arg):

  print(arg)

a=[1,2,3,4,5]

fun1(*a)---->  输出结果为:(1,2,3,4,5)   将列表a中的值分别传入作为元组的元素

fun1(a)---- >  输出结果为:(1,2,3,4,5],)  将列表a作为一个整体传入作为元组的元素

  

def fun1(*arg):

  print(arg)

b=[1,2,3,4,5]

c=‘anna‘

fun1(b,*a)---->  输出结果为:(1,2,3,4,5,‘anna‘)

fun1(b,a)---- >  输出结果为:([1,2,3,4,5],‘anna‘)

需要注意的是必须*args在前**kwargs在后,参数也是一样。
时间: 2024-11-10 14:14:26

python 难点记录的相关文章

python学习记录

python函数记录 map() 接收一个函数和一个序列,然后保留函数返回的结果的序列 reduce() 接收一个函数和一个序列 函数结果为一个值,运算过程就是从序列的第一个值开始传给函数,返回结果再次传入函数,直到最后得到一个结果. filter() 过滤函数 接收一个函数和一个序列 然后函数返回true和false,保留序列中的返回true的. def is_odd(n): return n % 2 == 1 filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]

Python学习记录day6

Python学习记录day6 学习 python Python学习记录day6 1.反射 2.常用模块 2.1 sys 2.2 os 2.3 hashlib 2.3 re 1.反射 反射:利用字符串的形式去对象(默认)中操作(寻找)成员 cat commons.py #!/usr/bin/env python#_*_coding:utf-8_*_''' * Created on 2016/12/3 21:54. * @author: Chinge_Yang.''' def login(): pr

Python学习记录day1

Python学习记录博客是本人记录学习python3过程中的一些记录和过程,日后也可以帮助自己温习. python优点: 1.Python入门简单,功能强大,适用性强: 2.开发效率高,第三方库强大且多: 3.Python无需考虑底层细节: 4.可移植性,跨平台: 5.可扩展性: 6.可嵌入性,Pthon可嵌入到C/C++程序中: python缺点: 1.速度慢,Python比C慢很多,比java也慢一点: 2.代码不能加密,源码是明文: 3.线程不能利用多 CPU 问题: python版本2和

Python学习记录day3

Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个无序且不重复,可嵌套的元素集合 class set(object):     """     set() -> new empty set object     set(iterable) -> new set object     Build an unordered collection of unique elements.     

final修饰符的难点记录

今天看到了final字段这块,把不会的或者难点记录下来. 第一,空白final. 书上说的有点绕,说空白final更灵活.但之前又说过final变量必须进行初始化,这是什么意思呢,二者难道有冲突吗? 其实空白final的核心就是:构造器赋值. <script src="https://code.csdn.net/snippets/401447.js"></script> 第二,static final 同 final 的区别. 以前我提过,static字段只会初

python学习记录第五篇--遍历目录

#coding=utf-8'''@author: 简单遍历目录删除文件的小程序'''import os#查找文件操作def findFile(path): fileList=[] for rootPath,subRoot,fileName in os.walk(path): for sub in fileName: if os.path.isfile(os.path.join(rootPath,sub)): k=os.path.splitext(sub)[1].lower() if k in (

python学习记录第四篇--数据库

只要用到MySQLdb,使用时请先安装MySQLdb,百度上可以下载! #coding=utf-8'''@author: 使用python操作MySQL数据库'''import MySQLdb#import MySQLdb.cursorsconn=MySQLdb.connect(user='root',passwd='root') #connect共三个值,user,passwd,host,无密码且连接本地数据库时,可以都为空.cur=conn.cursor() #创建游标,使用游标进行数据库操

python 点滴记录6:ubuntu 安装pycharm

想在ubuntu下学习python开发,IDE准备使用pycharm.记录一下安装过程: 要想运行pycharm,需要有java环境,因为pycharm是用java编写的.ubunutn系统默认安装的是openjdk,而我们需要的是oracle java. 搜索oracle的java软件包: apt-cache search oracle-java 搜不到任何包. 搜索openjdk包: apt-cache search java7 出现类似以下安装包: openjdk-7-jdk - Open

Python学习记录day5

title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 1.多层装饰器 多层装饰器的原理是装饰器装饰函数后其实也是一个函数这样又可以被装饰器装饰. 编译是从下至上进行的执行时是从上至下进行. #!/usr/bin/env python # _*_coding:utf-8_*_ ''' * Created on 2016/11/29 20:38. * @author: Chinge_Yang. ''' USER