disk python_Python学习第十二天

类的赋值与深浅拷贝

类的赋值

实际上指向的还是同一对象,只是用两个变量来表示。

class A:

pass

a = A()

b = a

print(a is b)

####

True

浅拷贝

Python拷贝一般都是浅拷贝。

class Cpu:

pass

class Disk:

pass

class Computer:

def __init__(self, cpu, disk):

self.cpu = cpu

self.disk = disk

cpu = Cpu()

disk = Disk()

c1 = Computer(cpu, disk)

import copy

c2 = copy.copy(c1)

print(c1, c1.cpu, c1.disk)

print(c2, c2.cpu, c2.disk)

####

可以看到,c1和c2是不同的对象,但是组成对象的子对象确实相同的。

3. 深拷贝

使用deepcopy来执行,组成对象的子对象是不同的。

c2 = copy.deepcopy(c1)

print(c1, c1.cpu, c1.disk)

print(c2, c2.cpu, c2.disk)

####

模块

一个py文件就是一个模块,可以包含类、函数、变量等。

# mymod.py

def fun():

print('mymod的fun()函数')

# main.py

import mymod

mymod.fun()

####

mymod的fun()函数

自定义模块

名称尽量不要与python自带的标准模块相同。

导入模块语法:

import 模块 [as 别名]

from 模块 import 类/函数/变量

查看math模块:

import math

print(dir(math))

####

['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp']

以主函数的形式运行

每个模块都有一个名称__name__,如果一个模块没有导入到其他模块中,那么它有可能是顶级模块,顶级模块的__name__ = __main__

语法:

if __name__ == '__main__':

pass

包是一个分层次的目录结构,将一组功能相近的模块放到同一个目录下,包含__init__.py文件。

包的导入:import 包名.类名/函数名/变量名..

内置模块

82a7ead394f6fdeebdb8905ba320c6c0.png

import sys

import time

print(sys.getsizeof(0), sys.getsizeof(1))

print(sys.getsizeof(False), sys.getsizeof(True))

print(time.time())

print(time.localtime(time.time()))

####

24 28

24 28

1612779887.052952

time.struct_time(tm_year=2021, tm_mon=2, tm_mday=8, tm_hour=18, tm_min=24, tm_sec=47, tm_wday=0, tm_yday=39, tm_isdst=0)

第三方模块的安装

使用pip install 模块来安装

文件

使用内置函数open()来创建文件对象,

7894fbe4d73cdef51621f1568f560fcb.png

常用文件打开方式

1417d2467d4866c6ad562638169be510.png

文件的常用方法

f2361441fb1a5c08a3dfe418cc0b7d75.png

with语句

可以自动管理上下文的资源,无论发生什么跳出with块,都会释放资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值