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

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

猜你喜欢

转载自blog.csdn.net/weixin_41376658/article/details/79732397