Python学习笔记04

datetime模块

其实就是date和time 模块的结合, 常见的属性方法都比较常用
比如:
datetime.day,datetime.month,datetime.year 分别表示一个datetime对象的日,月,年

from datetime import datetime
dt=datetime.now() #创建一个datetime类对象
print dt.year,dt.month,dt.day

'''
输出为:
2019 8 1
'''

strftime()函数

strftime() 用来格式化datetime 对象, 有时候会十分的方便:
先看一下格式: datetime.strftime(’%’ ) %后面跟一个控制字符

from datetime import datetime
dt = datetime.now()  
print   '时间:(%Y-%m-%d %H:%M:%S %f): ' , dt.strftime( '%Y-%m-%d %H:%M:%S %f' )  
print   '时间:(%Y-%m-%d %H:%M:%S %p): ' , dt.strftime( '%y-%m-%d %I:%M:%S %p' )  
print   '星期缩写%%a: %s '  % dt.strftime( '%a' )  
print   '星期全拼%%A: %s '  % dt.strftime( '%A' )  
print   '月份缩写%%b: %s '  % dt.strftime( '%b' )  
print   '月份全批%%B: %s '  % dt.strftime( '%B' )  
print   '日期时间%%c: %s '  % dt.strftime( '%c' )  
print   '今天是这周的第%s天 '  % dt.strftime( '%w' )  
print   '今天是今年的第%s天 '  % dt.strftime( '%j' )  
print   '今周是今年的第%s周 '  % dt.strftime( '%U' ) 
print   '今天是当月的第%s天 '  % dt.strftime( '%d' )

'''
输出如下:
--------------------------------------------------------------
时间:(%Y-%m-%d %H:%M:%S %f):  2019-08-01 19:49:49 347018
时间:(%Y-%m-%d %H:%M:%S %p):  19-08-01 07:49:49 PM
星期缩写%a: Thu 
星期全拼%A: Thursday 
月份缩写%b: Aug 
月份全批%B: August 
日期时间%c: Thu Aug  1 19:49:49 2019 
今天是这周的第4天 
今天是今年的第213天 
今周是今年的第30周 
今天是当月的第01天 
---------------------------------------------------
'''

Calendar模块

获取月历日历

>>> import calendar
>>> print calendar.month(2019, 8)
    August 2019
Mo Tu We Th Fr Sa Su
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

可更改(mutable)与不可更改(immutable)对象

在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

不定长参数

一个函数能处理比当初声明时更多的参数

声明
def functionname([formal_args,] *var_args_tuple ):
   "函数_文档字符串"
   function_suite
   return [expression]
实例
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
# 可写函数说明
def printinfo( arg1, *vartuple ):
   "打印任何传入的参数"
   print "输出: "
   print arg1
   for var in vartuple:
      print var
   return;
 
# 调用printinfo 函数
printinfo( 10 );
printinfo( 70, 60, 50 );

# 输出
输出:
10
输出:
70
60
50

os 模块操作文件和目录

重命名和删除文件

Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。

os.rename()
import os
 
# 重命名文件test1.txt到test2.txt。
os.rename( "test1.txt", "test2.txt" )
os.remove()
import os
 
# 删除一个已经存在的文件test2.txt
os.remove("test2.txt")

目录操作

mkdir() 创建目录

使用os模块的mkdir()方法在当前目录下创建新的目录

import os
 
# 创建目录test
os.mkdir("test")
chdir() 切换目录

用chdir()方法来改变当前的目录

import os
 
# getcwd() 获取当前目录
print os.getcwd()

# 将当前目录改为"/home/newdir"
os.chdir("/home/newdir")
rmdir() 删除目录

rmdir()方法删除目录,目录名称以参数传递。

在删除这个目录之前,它的所有内容应该先被清除。

import os
 
# 删除”/tmp/test”目录
os.rmdir( "/tmp/test"  )

Python 类属性与方法

类的私有属性

__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。

类的方法

在类的内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数

类的私有方法

__private_method:两个下划线开头,声明该方法为私有方法,不能在类的外部调用。在类的内部调用 self.__private_methods


#!/usr/bin/env python
# -*- coding: UTF-8 -*-
 
class JustCounter:
    __secretCount = 0  # 私有变量
    publicCount = 0    # 公开变量
 
    def count(self):
        self.__secretCount += 1
        self.publicCount += 1
        print self.__secretCount
 
counter = JustCounter()
counter.count()
counter.count()
print counter.publicCount
print counter.__secretCount  # 报错,实例不能访问私有变量

输出:

1
2
2
Traceback (most recent call last):
  File "test.py", line 17, in <module>
    print counter.__secretCount  # 报错,实例不能访问私有变量
AttributeError: JustCounter instance has no attribute '__secretCount'

访问私有属性

Python不允许实例化的类访问私有数据,但你可以使用 object._className__attrName( 对象名._类名__私有属性名 )访问属性

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

class private_var:
    __site = "访问私有属性成功"

my_var = private_var()
print my_var._private_var__site

# 输出:
访问私有属性成功

单下划线、双下划线、头尾双下划线区别

  • __foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的。

  • _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *

  • __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值