zoukankan      html  css  js  c++  java
  • python笔记

    ctrl + / 注释

    python中的整数的大小没有限制,可以是一个无限大的整数

    对浮点数进行运算时,可能会得到一个不精确的结果

    input() 返回为字符串

    如果形参执行的是一个对象,当我们通过形参去修改对象时,会影响到所有指向该对象的变量

    要想不让形参改变指向该对象的变量,需传入变量的副本或切片

    定义函数时,可以在形参前边加一个*,这样这个形参将会获取到所有的实参

    *a会接受所有的位置参数,并且将这些实参统一保存到一个元组中(装包)

    a可以接受关键字参数,只能有一个,并且必须写在所有参数的最后对参数解包,用

    方法和函数的区别:

    如果是函数调用,则调用时传几个参数,就会有几个实参

    但是如果对方法调用,默认传递一个参数,所以方法中至少定义一个形参

    类对象和实例对象都可以保存属性和方法

       如果这个属性是所有的实例共享时,则应该将其保存到类对象中

       如果这个属性是某个实例独有,则应该保存到实例对象中

       一般情况下,属性保存在实例对象中,方法保存在类对象中

    方法中不能直接访问类中的属性

    方法的第一个参数,就是调用方法的对象本身

       如果是p1调的,则第一个参数就是p1对象

       如果是p2调的,则第一个参数就是p2对象

    特殊方法:以双下划线开头,双下划线结尾,不要尝试调用特殊方法

    init会在对象创建以后立即执行

    init可以用来向新创建的对象中初始化属性

    创建对象的流程:

       1.创建一个变量

       2.在内存中创建一个新对象

       3.init(self)方法执行

       4.将对象的id赋值给变量

      可以为对象的属性使用双下划线开头,xx 双下划线开头的属性,是对象的隐藏属性,隐藏属性只能在类的内部访问,无法通过对象访问 但是可以通过_类名xx进行访问

      一般情况下,使用下划线开头的属性都是私有属性,没有特殊要求,不建议修改

    装饰器:

    使用property装饰的方法,必须和属性名是一样的

     @属性.setter/getter 提供读和写的权限

    若子类只能实现父类的大部分功能,但是不能实现全部功能,则用继承

    python支持多重继承,即一个类可以继承多个父类,不建议使用多重继承

    实例方法:

       在类中定义,以self为第一个参数的方法都是实例方法

       实例方法在调用时,python会将调用对象作为self传入

       当通过实例调用时,会自动将当前调用对象作为self传入

       当通过类调用时,不会自动传递self

    类方法:

      在类内部使用@classmethod来修饰的方法属于

      类方法 类方法第一个参数是cls,也会被自动传递,cls就是当前的类对象

       类方法和实例方法的区别:类方法的第一个参数是self,而类方法的第一个参数是cls

    静态方法:

       在类中使用@staticmethod来修饰的方法属于静态方法

       静态方法不需要指定任何默认参数,静态方法可以通过类和实例调用

       静态方法,基本放是一个和当前类无关的方法,他只是一个保存到当前类中的函数 一般都是一些工具方法,和当前类无关

    在程序中,没有被引用的对象都是垃圾

    python有垃圾回收机制,不需要手动执行

    特殊方法:

       str (print函数打印)

       repe(交互模式自动打印)

    python中一个py文件就是一个模块

    namemain的模块,为主模块

    添加了的变量,只能在模块内部访问,在通过import *引入时,不会引入开头的变量 py执行代码前,需要被解释器先转换为机器码,然后再执行

       所以我们在使用模块(包)时,也需要将模块的代码先转换为机器码然后再交由计算机执行

       而为了提高程序运行的性能,python会在编译过一次之后,将代码保存到一个缓存文件中 这样在下次加载这个模块时,就可以不再重新编译而是直接加载缓存中编译好的代码即可

    异常的传播:

       如果函数中没有对异常进行处理,则异常会继续向函数调用处传播

       如果函数调用处处理了异常,则不再传播,如果没有处理则继续向调用处传播

       知道传递到全局作用域(主模块)如果依然没有处理,则程序终止,并且显示异常信息

    Exception是所有异常的父类,所以如果exception后跟的是Exception,他也会捕获所有的异常

    try是必须的,else语句有没有都行

    except和finally至少有一个

    目标文件和当前文件在同一级目录下,则直接使用文件名即可

    在windows系统使用路径时,可以使用/来代替

    或者使用来代替

    或者也可以使用原始字符串 r' 文件' 表示目录时,可以使用..来返回一级目录

    绝对路径应该从磁盘的根目录开始书写

    open()打开文件时,默认是以文本文件的形式打开的,但是open()默认的编码为None

    所以处理文本文件时,必须要指定文件的编码

    通过read()读取文件中的内容

       如果直接调用read()他会将文本文件的所有内容全部读取出来

       如果读取的文件较大的话,会一次性将文件的内容加载到内存中,容易导致内存泄漏

    'w' 写

    'a' 追加

    'r+'既可读又可写

    'w+'

    'a+'

    x创建文件

    t读取文本文件

    b读取二进制文件

     

     就先酱吧~

  • 相关阅读:
    飞入飞出效果
    【JSOI 2008】星球大战 Starwar
    POJ 1094 Sorting It All Out
    POJ 2728 Desert King
    【ZJOI 2008】树的统计 Count
    【SCOI 2009】生日快乐
    POJ 3580 SuperMemo
    POJ 1639 Picnic Planning
    POJ 2976 Dropping Tests
    SPOJ QTREE
  • 原文地址:https://www.cnblogs.com/dreamzj/p/14332670.html
Copyright © 2011-2022 走看看