python os 、内置函数、类
2019-08-13 本文已影响0人
精神病患者link常
os 模块提供了非常丰富的方法用来处理文件和目录
getcwdu = os.getcwdu()
print '当前工作的路径=', getcwdu
listdir = os.listdir('/Users/imac/Desktop/')
print '返回给定路径下的文件名及文件名 [类型为数组]', listdir
# os.mkdir('/Users/imac/Desktop/abc') # 创建文件夹
#os.unlink('/Users/imac/Desktop/abc') # 删除文件夹
isfile = os.path.isfile('/Users/imac/Desktop/abc')
print '给定的路径是否是一个文件', isfile
isdir = os.path.isdir('/Users/imac/Desktop/abc')
print '给定的路径是否是一个文件夹', isdir
exists = os.path.exists('/Users/imac/Desktop/abc')
print '给定的路径是否存在', exists
getsize = os.path.getsize('/Users/imac/Desktop/foo.txt')
print '给定的路径的文件大小', getsize # 字节
splitext = os.path.splitext('/Users/imac/Desktop/foo.txt')
# 第一个元素为路径(/Users/imac/Desktop/foo),第二个元素为扩展名(.txt)
print '分离给定的路径的文件名和扩展名 [类型为数组]', splitext
内置函数
a = -100
print '绝对值=',abs(a)
# @staticmethod 标记一个函数为静态函数,可以不用实例化类调用。 C.test() 也可以 C().test()
'''
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
'''
b = 12
c = isinstance(b, int)
print 'c是否是 int', c
d = 'string'
e = type(d) == str
print 'd是否是 str', e
class A:
pass
class B(A):
pass
print '判断一个类是否是另外一个类的子类',issubclass(B,A)
print '比较数值大小',cmp(80, 100) # 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
print "max(80, 100, 1000) : ", max(80, 100, 1000) # 返回最大值
print "min(80, 100, 1000) : ", min(80, 100, 1000) # 返回最小值
# hasattr(object, name) # 判断object类中是否存在name的属性
# round( x [, n] ) 方法返回浮点数x的四舍五入值。 x 为值 n 为小数点后几位
print "round(80.23156, 2) : ", round(80.23156, 2) # 判断 1 是否可以 四舍五入
类
# -*- coding: UTF-8 -*-
# 声明一个类
class Body:
# 类属性 公开属性,外部可以访问
myHeight = 172
# def 声明函数时的标识
# 构造函数 必传 第一个参数self, 其他参数为构造函数时自定义的参数
def __init__(self, name, age):
self.name = name
self.age = age
# 函数必须有一个额外的第一个参数名称
# 按照惯例它的名称是 self
def printMyName(self):
print '我的名字是=', self.name
def printMyAge(self):
print '我的年龄是=', self.age
self.__printMyNameAndAge()
# 私有函数,外部不能访问
def __printMyNameAndAge(self):
print '我的名字是=', self.name, '我的年龄是=', self.age
# 创建实例对象
my = Body('张三', 20) # 除去第一个参数固定为self,依次传入其他参数
# 访问类方法
my.printMyName()
my.printMyAge()
# 访问类属性
print '类属性=', my.myHeight
my.myHeight = 180
print '修改类属性=', my.myHeight
class Eat:
# 受保护的属性,仅允许自身和自类访问
_eatList = ['apple', 'photo']
def eatWhat(self,what):
print '我在吃', what
# 类继承 多继承
class MyBody(Body, Eat):
# 私有变量 __开头 内部调用 self.__myGril
__myGril = '凯蒂'
# 受保护的属性,仅允许自身和自类访问
_info = [1,2,3]
# 重写构造方法
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
# 重写父类的方法
def printMyName(self):
print '我的帅帅帅帅帅名字是=', self.name
self.__myGrilName()
# 私有函数 __ 开头
def __myGrilName(self):
print '我的女朋友', self.__myGril
print self._info
myBody = MyBody('李四', 30, '男')
myBody.printMyName()
myBody.eatWhat('面包')
myBody.printMyName()
print myBody._eatList
del myBody
# myBody.printMyAge() 失败 会提示 name 'myBody' is not defined