您的位置:首页 > 编程语言 > Python开发

深度学习中遇到的Python问题(四)

2018-03-28 19:16 375 查看
1. glob.glob()

该方法的功能与Linux中的ls相似,接受一个Linux式的文件名格式表达式(filename pattern expression),列出所有符合该表达式的文件(与正则表达式类似),将所有文件名放在一个表中返回。所以glob.glob()是一个查询目录下文件的好方法。

path = os.path.join(train_path, fields, '*g')
files = glob.glob(path)


在读取图片名称常用到。

2. os.path.basename()

返回一个目录的基名
Returns the final component of a pathname
os.path.basename("/etc/sysconfig/selinux")
'selinux'
os.path.basename("/usr/local/python3/bin/python3")
'python3'


就是返回最后一份目录的名字。

3.以下划线命名变量

“单下划线”

“单下划线” 开始的成员变量叫做保护变量,意思是只有类对象和自类对象自己能访问到这些变量。

例子:以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入。

“双下划线”

“双下划线” 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

例子:以双下划线开头的(foo)代表类的私有成员;以双下划线开头和结尾的(__foo)代表python里特殊方法专用的标识,如 init()代表类的构造函数。

4.@property

https://blog.csdn.net/u013205877/article/details/77804137

5.assert

python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。

assert  batch_size <= self._num_examples


batch_size的值不能大于所有样本的总数。

使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助。

5.isinstance

if isinstance(validation_size, float):


isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。

isinstance() 与 type() 区别:

a. type() 不会认为子类是一种父类类型,不考虑继承关系。

b. isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance()。

a = 2

isinstance (a,int)

True

isinstance (a,str)

False

isinstance (a,(str,int,list)) # 是元组中的一个返回 True

True

type() 与 isinstance()区别:

class A:

pass

class B(A):

pass

isinstance(A(), A) # returns True

type(A()) == A # returns True

isinstance(B(), A) # returns True

type(B()) == A # returns False
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: