我正在尝试在python中加载CIFAR-10数据集,但是它显示的键名却很不规范。dict.keys()给出以下输出:
dict_keys([b'labels', b'batch_label', b'data', b'filenames'])
按键名称之外的“ b”是什么?
我使用了数据集网站上给出的代码来进行剔除:
def unpickle(file):
import pickle
with open(file, 'rb') as fo:
dict = pickle.load(fo, encoding='bytes')
return dict
Run Code Online (Sandbox Code Playgroud) 我发现我们可以在类之前和类名之后使用访问修饰符。例如,我有 2 个类如下
package com.company.package.sub_package
protected class Animal1{
def makeSound(): Unit = println("Bow ow")
}
object Animal1{
def main(args: Array[String])
{
val animal = new Animal2()
animal.makeSound()
}
}
Run Code Online (Sandbox Code Playgroud)
package com.company.package.sub_package
class Animal2 protected{
def makeSound(): Unit = println("Meow")
}
object Animal2{
def main(args: Array[String])
{
val animal = new Animal1()
animal.makeSound()
}
}
Run Code Online (Sandbox Code Playgroud)
此处,Animal1 主方法中出现错误,指出无法在对象 Animal1 中访问 Animal2。
如果我扩展 Animal2 类,子类就可以访问父类。
我从中了解到的是,如果我们在类名之后写 protected,它对同一个包中的类不可用,如果我在类之前纠正它,它对包中的所有类可用,仅对它的子类可用,是这样吗?一个正确的假设?访问修饰符的位置的确切意义是什么?