精华内容
下载资源
问答
  • ,第一个答案大致的意思是这样的: "起初 items() 就是返回一个像上面那样的包含dict所有元素的list,但是由于这样太浪费内存,所以后来就加入了(注:在Python 2.2开始出现的)iteritems(), iterkeys(), ...

    这篇文章主要介绍了Python中dictionary items()系列函数的用法,很实用的函数,需要的朋友可以参考下

    本文实例讲述了Python中dictionary items()系列函数的用法,对Python程序设计有很好的参考借鉴价值。具体分析如下:

    先来看一个示例:import html # available only in Python 3.x

    def make_elements(name, value, **attrs):

    keyvals = [' %s="%s"' % item for item in attrs.items()]

    attr_str = ''.join(keyvals)

    element = '<{name}{attrs}>{value}{name}>'.format(

    name = name,

    attrs = attr_str,

    value = html.escape(value))

    return element

    make_elements('item', 'Albatross', size='large', quantity=6)

    make_elements('p', '')

    该程序的作用很简单,就是生成HTML标签,注意html这个模块只能在Python 3.x才有。

    起初我只是注意到,生成标签属性列表的keyvals这个dictionary类型变量构建的方式很有意思,两个%s对应一个item,所以就查阅了相关的资料,结果扯出了挺多的东西,在此一并总结。

    注:下面所有Python解释器使用的版本,2.x 对应的是2.7.3,3.x 对应的是3.4.1

    在 Python 2.x 里,官方文档里items的方法是这么说明:生成一个 (key, value) 对的list,就像下面这样:>>> d = {'size': 'large', 'quantity': 6}

    >>> d.items()

    [('quantity', 6), ('size', 'large')]

    在搜索的过程中,无意看到stackoverflow上这样一个问题:dict.items()和dict.iteritems()有什么区别? ,第一个答案大致的意思是这样的:

    "起初 items() 就是返回一个像上面那样的包含dict所有元素的list,但是由于这样太浪费内存,所以后来就加入了(注:在Python 2.2开始出现的)iteritems(), iterkeys(), itervalues()这一组函数,用于返回一个 iterator 来节省内存,但是在 3.x 里items() 本身就返回这样的 iterator,所以在 3.x 里items() 的行为和 2.x 的 iteritems() 行为一致,iteritems()这一组函数就废除了。”

    不过更加有意思的是,这个答案虽然被采纳,下面的评论却指出,这种说法并不准确,在 3.x 里 items() 的行为和 2.x 的 iteritems() 不一样,它实际上返回的是一个"full sequence-protocol object",这个对象能够反映出 dict 的变化,后来在 Python 2.7 里面也加入了另外一个函数 viewitems() 和 3.x 的这种行为保持一致

    为了证实评论中的说法,我做了下面的测试,注意观察测试中使用的Python版本:

    测试1(Python 2.7.3):Python 2.7.3 (default, Feb 27 2014, 19:58:35)

    [GCC 4.6.3] on linux2

    Type "help", "copyright", "credits" or "license" for more information.

    >>> d = {'size': 'large', 'quantity': 6}

    >>> il = d.items()

    >>> it = d.iteritems()

    >>> vi = d.viewitems()

    >>> il

    [('quantity', 6), ('size', 'large')]

    >>> it

    >>> vi

    dict_items([('quantity', 6), ('size', 'large')])

    测试2(Python 3.4.1):Python 3.4.1 (default, Aug 12 2014, 16:43:01)

    [GCC 4.9.0] on linux

    Type "help", "copyright", "credits" or "license" for more information.

    >>> d = {'size': 'large', 'quantity': 6}

    >>> il = d.items()

    >>> it = d.iteritems()

    Traceback (most recent call last):

    File "", line 1, in

    AttributeError: 'dict' object has no attribute 'iteritems'

    >>> vi = d.viewitems()

    Traceback (most recent call last):

    File "", line 1, in

    AttributeError: 'dict' object has no attribute 'viewitems'

    >>> il

    dict_items([('size', 'large'), ('quantity', 6)])

    可以看到在 Python 3.x 里面,iteritems() 和 viewitems() 这两个方法都已经废除了,而 item() 得到的结果是和 2.x 里面 viewitems() 一致的。

    2.x 里 iteritems() 和 viewitems() 返回的内容都是可以用 for 来遍历的,像下面这样>>> for k, v in it:

    ... print k, v

    ...

    quantity 6

    size large

    >>> for k, v in vi:

    ... print k, v

    ...

    quantity 6

    size large

    这两者的区别体现在哪里呢?viewitems() 返回的是view object,它可以反映出 dictionary 的变化,比如上面的例子,假如在使用 it 和 vi 这两个变量之前,向 d 里面添加一个key-value组合,区别就很容易看出来了。>>> it = d.iteritems()

    >>> vi = d.viewitems()

    >>> d['newkey'] = 'newvalue'

    >>> d

    {'newkey': 'newvalue', 'quantity': 6, 'size': 'large'}

    >>> vi

    dict_items([('newkey', 'newvalue'), ('quantity', 6), ('size', 'large')])

    >>> it

    >>> for k, v in vi:

    ... print k, v

    ...

    newkey newvalue

    quantity 6

    size large

    >>> for k, v in it:

    ... print k, v

    ...

    Traceback (most recent call last):

    File "", line 1, in

    RuntimeError: dictionary changed size during iteration

    在第三行中,我们像 d 里面插入了一个新的元素,vi 可以继续遍历,而且新的遍历能够反映出 d 的变化,但是在遍历 it 的时候,报错提示 dictionary 在遍历的时候大小发生了变化,遍历失败。

    总结起来,在 2.x 里面,最初是 items() 这个方法,但是由于太浪费内存,所以加入了 iteritems() 方法,用于返回一个 iterator,在 3.x 里面将 items() 的行为修改成返回一个 view object,让它返回的对象同样也可以反映出原 dictionary 的变化,同时在 2.7 里面又加入了 viewitems() 向下兼容这个特性。

    所以在 3.x 里面不需要再去纠结于三者的不同之处,因为只保留了一个 items() 方法。

    相信本文所述示例对大家的Python程序设计有一定的借鉴价值。

    【相关推荐】

    以上就是Python中items()系列函数的用法详解的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • Java关键字default

    万次阅读 多人点赞 2017-08-01 21:07:48
    今天打算写一篇ConcurrentHashMap的源码分析,在看源码过程中发现一个... default常用语接口中,从它的中文意思行来看,大概能猜个差不多,我们本来写Java接口的时候,是不能有方向体的函数,就类似于C++中的虚函数

      今天打算写一篇ConcurrentHashMap的源码分析,在看源码过程中发现一个接口中有了default关键字,这是生平第一次见到这个关键字,然后Google了一下,发现是Java8的新特性,所以就打算写一篇关于default的文章。

      default常用于接口中,从它的中文意思行来看,大概能猜个差不多,我们本来写Java接口的时候,是不能有方法体的函数,就类似于C++中的虚函数,default关键字在接口中修饰方法时,方法可以有方法体,来看一个例子。

    public interface Default {
    
        default public void method(){
            System.out.println("method in interface");
        }
    }
    
      一个接口,method方法在使用关键字default后可以有方法体了。

    public class DefaultImpl implements Default {
    
        @Override
        public void method() {
            System.out.println("method in Class");
        }
    
        public static void main(String[] args){
            Default d = new DefaultImpl();
            d.method();
        }
    }
    
      DefaultImpl实现了Default接口,最终运行结果:


      而此时如果Default接口再加一个方法呢,如果这个方法没有default关键字修饰,则DefaultImpl没有实现这个方法就会报错,这就体现了default关键字的作用。我们继续修改Default接口。

     Default接口如下:

    public interface Default {
    
        default public void method(){
            System.out.println("method in interface");
        }
    
        default public void doSomeThing(){
            System.out.println("do something in interface");
        }
    }
    
      DefaultImpl并没有重写doSomeThing方法
    public class DefaultImpl implements Default {
    
        @Override
        public void method() {
            System.out.println("method in Class");
        }
    
        public static void main(String[] args){
            Default d = new DefaultImpl();
            d.method();
            d.doSomeThing();
        }
    }
      运行结果如下:

      运行结果符合Java多态的特性,default关键字可以让接口中的方法可以有默认的函数体,当一个类实现这个接口时,可以不用去实现这个方法,当然,这个类若实现这个方法,就等于子类覆盖了这个方法,最终运行结果符合Java多态特性。

    展开全文
  • defaultConfig——安卓gradle

    千次阅读 多人点赞 2019-09-08 22:46:22
    一、前言 我们在安卓开发中,编译的任务是由 gradle 来负责的。...话不多说,今天分享的是在我们的每个模块下(应用级)build.gradle 文件中,android 下的 defaultConfig 属性 二、defaultConfig ...

    目录
    一、前言
    二、defaultConfig
    1、搞清楚几个问题
    2、defaultConfig 的存在形式
    3、defaultConfig 中属性的意义
    4、defaultConfig 中方法的意义
    三、写在最后

    一、前言

    我们在安卓开发中,编译的任务是由 gradle 来负责的。但很多时候我们进入 build.gradle 文件中,有种似懂非懂的感觉,所以小盆友总结并分享自己学习到的点滴。

    话不多说,今天分享的是在我们的每个模块下(应用级)build.gradle 文件中,android 下的 defaultConfig 属性

    二、defaultConfig

    1、搞清楚几个问题

    在分享 defaultConfig 前,我们需要先弄清楚几个问题,这几问题之前一直困扰着小盆友,所以顺便记录和分享下。

    (1)build.gradle 最终是以什么形式存在。
    (2)为什么 每个模块下的 build.gradle 文件的最开始都有 apply plugin: 'com.android.library' 这样一行代码。

    自动生成完的 build.gradle 格式如下所示

    apply plugin: 'com.android.library'
    
    android {
    	// 省略一些配置
    }
    
    dependencies {
    	// 省略依赖
    }
    

    这个文件最终会被转换为 org.gradle.api.Project 类(其类的关系如下图)。

    Project
    ExtensionAware
    PluginAware
    • 第一行代码的 apply 会调用 PluginAwarevoid apply(Map<String, ?> options); 方法,进行设置插件;
    • 接下来的 android,并不是 gradle 中所带的,而是第一行代码插件所带来。具体会映射为 com.android.build.gradle.AppExtension 类;
    • 最后的 dependencies,会调用 Projectvoid dependencies(Closure configureClosure); 方法;

    2、defaultConfig 的存在形式

    defaultConfig 会被映射为 DefaultConfig 类,其继承结构图如下

    DefaultConfig
    BaseFlavor
    DefaultProductFlavor
    CoreProductFlavor
    BaseConfigImpl
    ProductFlavor
    BaseConfig
    DimensionAware

    3、defaultConfig 中属性的意义

    下面是官方给出的文档,我们以 3.3 的版本进行讲解,其他版本可能有些许的小改动。

    defaultConfig官方文档 传送门

    3.1 applicationId

    • 类型:String
    • 描述:应用的id,即我们常说的包名。我们都知道 android studio 是以 applicationId 作为包名,以前使用 eclipse 时,则另当别论了。
    • 使用方法:
    defaultConfig {
        // applicationId 应用的包名
        // applicationId 会替换 AndroidManifest.xml 中的 manifest 标签下 package 的 value
        applicationId "com.zinc.gradlestudy"
    	......省略其他配置
    }
    

    3.2 applicationIdSuffix

    • 类型:String
    • 描述:会追加在上面 applicationId 字符串的后面,形成最终的包名
    • 使用方法:
    defaultConfig {
    	// 若此时 applicationId 为 com.zinc.gradlestudy,则最终会形成 com.zinc.gradlestudy.debug 的包名
        applicationIdSuffix "debug"
    	......省略其他配置
    }
    

    3.3 externalNativeBuild

    • 类型:ExternalNativeBuildOptions
    • 描述:这里我们设置 ndk 编译过程的一些参数。分为 cmake 和 ndkBuild 两个参数。
    • 使用方法:
    defaultConfig {
        externalNativeBuild {
            ndkBuild {
                // Passes an optional argument to ndk-build.
                arguments "NDK_MODULE_PATH+=../../third_party/modules"
            }
            // For ndk-build, instead use the ndkBuild block.
            cmake {
                 // Passes optional arguments to CMake.
                 arguments "-DANDROID_ARM_NEON=TRUE", "-DANDROID_TOOLCHAIN=clang"
    
                 // Sets a flag to enable format macro constants for the C compiler.
                 cFlags "-D__STDC_FORMAT_MACROS"
    
                 // Sets optional flags for the C++ compiler.
                 cppFlags "-fexceptions", "-frtti"
    
                 // Specifies the library and executable targets from your CMake project
                 // that Gradle should build.
                 targets "libexample-one", "my-executible-demo"
             }
       }
    }
    

    cmake 具体参数 传送门
    ndkBuild 具体参数 传送门

    3.4 dimension

    • 类型:String
    • 描述:当前的配置所属的 “风味维度”,这个参数在这里的并没有实际的意义,在打多渠道包的时候,会进行更多的分享。
    • 使用方法:
    defaultConfig {
    	dimension 'debug'
    	......省略其他配置
    }
    

    3.5 consumerProguardFiles

    • 类型:List< File >
    • 描述:这个属性只作用于我们创建的 library 中,包括我们以aar形式导入的 library ,或是直接创建的 library。它的作用是,负责该 library 被进行编译时的混淆规则,我们在 主App 的模块下则可以不用再管理各个 library 的混淆规则,会直接使用各个 library 的混淆规则文件。
    • 使用方法:
    defaultConfig {
    	consumerProguardFiles 'consumer-rules.pro'
    	......省略其他配置
    }
    
    // 因为该属性是一个 List<File> 类型,如果需要多个文件配置,则如下所示
    defaultConfig {
    	consumerProguardFiles 'consumer-rules.pro','zincPower-rules.pro'
    	......省略其他配置
    }
    

    3.6 javaCompileOptions

    • 类型:JavaCompileOptions
    • 描述:配置编译时 java 的一些参数,例如我们使用 annotationProcessor 时所需要的参数。
    • 使用方法:
    defaultConfig {
    	javaCompileOptions {
            annotationProcessorOptions{
    			arguments = []
    			classNames ''
    			....
    		}
    	}
    	......省略其他配置
    }
    

    JavaCompileOptions 可以配置的具体参数,请进传送门

    3.7 manifestPlaceholders

    • 类型:Map<String, Object>
    • 描述:配置可以在 AndroidManifest.xml 中替换的参数,一般用于多渠道中使用,不会在 defaultConfig 中使用。
    • 使用方法:

    这里想配置我们应用的logo,则可以在 gradle 中使用下面这段

    defaultConfig {
    	manifestPlaceholders = [APP_LOGO_ICON: "@mipmap/ic_logo"]
    }
    

    然后在 AndroidManifest.xml 中使用,使用 ${你配置的变量名}

    // 在 application 中使用替换,还需要多添加 tools:replace 这一标签,将我们需要替换的名称写上,例如这里的 android:icon
    <application
        android:allowBackup="true"
        android:icon="${APP_LOGO_ICON}"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="android:icon">
    ......
    

    3.8 multiDexEnabled

    64K 引用限制问题官方文档 传送门

    • 类型:Boolean
    • 描述:是否开启分包。因为安卓中方法索引值为两个字节,四位十六进制的一个数值,即[0, 0xffff],所以最大方法数为65536个。一旦超出了,就需要进行分包,所以我们就需要开启这个参数。
    • 使用方法:
    defaultConfig {
    	multiDexEnabled true
    	...
    }
    
    // 添加依赖
    dependencies {
    	// 如果使用的为 AndroidX,则使用下面这个导入
    	// implementation 'androidx.multidex:multidex:2.0.1'
    	// 如果不使用 AndroidX,则使用下面这段
        compile 'com.android.support:multidex:1.0.3'
    }
    

    有两种开启 MultiDex 方法:

    // 第一种:让你应用的 Application 继承 MultiDexApplication。
    public class MyApplication extends MultiDexApplication {
    
    }
    
    // 第二种:重写应用的 Application 方法 attachBaseContext
    public class MyApplication extends Application {
    
        @Override
        protected void attachBaseContext(Context base) {
            super.attachBaseContext(base);
            MultiDex.install(this);
        }
    }
    

    最后别忘了在 AndroidManifest.xml 中使用我们在上面的 Application。

    3.9 multiDexKeepFile

    • 类型:File
    • 描述:将我们需要的类打包进主包,即 classs.dex。我们在第 3.8 小点,分享到使用了多包处理,有时我们需要将一些主要的类打包进主包,则可以使用该属性。
    • 使用方法:
    defaultConfig {
    	multiDexKeepFile file('multidex-config.txt')
    	...
    }
    

    multidex-config.txt 中的书写则如下,每一个文件则为一行

    com/example/MyClass.class
    com/example/TestClass.class
    

    3.10 multiDexKeepProguard

    • 类型:File
    • 描述:将我们需要的类打包进主包,和第 3.9 点的功能相同,区别在于写法。
    • 使用方法:
    defaultConfig {
    	multiDexKeepFile file('multidex-config.pro')
    	...
    }
    

    multidex-config.pro 中的写法如下

    // 将会保留所有的在com.example package的类
     -keep class com.example.** { *; }
    

    3.11 ndk

    • 类型:NdkOptions
    • 描述:用于abi过滤
    • 使用方法:
      进行如下配置,编译出来的 Apk包只包含armeabi-v7a,不会包含其他的架构,例如 “X86”。
    defaultConfig {
    	// ndk中,目前只有 abiFilter 一个属性,所以 ndk 目前来说只用于 abi 的过滤
    	ndk {
            abiFilter 'armeabi-v7a'
        }
    	...
    }
    

    NdkOptions的具体可配参数见官方文档 传送门

    3.12 proguardFiles

    • 类型:List
    • 描述:配置混淆规则文件,但我们一般不会在这里使用该配置,而会在 buildTypes 中结合 minifyEnabled 一起使用。

    3.12 signingConfig

    • 类型:SigningConfig
    • 描述:配置签名配置,但一般不会在这里进行配置,而会在 buildTypes 中进行配置,这里先不过多解释。

    3.13 vectorDrawables

    • 类型:VectorDrawablesOptions
    • 描述:配置矢量图的参数
    • 使用方法:
      VectorDrawablesOptions 中只有两个参数,为 generatedDensitiesuseSupportLibrary。分别的用处如下
    defaultConfig {
        vectorDrawables {
            // 如果 minSdkVersion 小于 21,只生成mdpi的png
            generatedDensities 'mdpi'
    
            // 设置为 true,会忽略 generatedDensities ,会加入svg兼容包,不会再产生png
            useSupportLibrary true
        }
    }
    

    矢量图的用法,可以看小盆友的另一片文章

    3.14 versionCode

    • 类型:Integer
    • 描述:应用当前的版本值。和 versionName 的区别在小盆友看来,versionCode 是给程序员看的,versionName 是给产品经理和用户看的。
    • 使用方法:
    defaultConfig {
        versionCode 1000
        ......
    }
    

    3.15 versionName

    • 类型:String
    • 描述:应用版本。我们通常所说的该应用的版本是“1.2.0”,则是由这个值配置的。
    • 使用方法:
    defaultConfig {
    	versionName "1.0.0"
    	.....
    }
    

    3.16 versionNameSuffix

    • 类型:String
    • 描述:追加在第 3.15 小点“版本”的后缀
    • 使用方法:
    defaultConfig {
    	// 如果 versionName "1.0.0" ,则最终的版本名为 1.0.0.test
    	versionNameSuffix ".test"
    	.....
    }
    

    4、defaultConfig 中方法的意义

    4.1 buildConfigField(type, name, value)

    • 描述:我们可以在 BuildConfig 类中添加值,最终会在 BuildConfig 中添加如下一行代码。
    // 值的注意的是 value 的值是原样放置,我们通过使用方法一节来了解
    <type> <name> = <value>
    
    • 使用方法:
    defaultConfig {
        // 可以通过 BuildConfig 进行获取
        buildConfigField('String', 'name', '"zinc"')
        buildConfigField('int', 'age', '26')
    	.....
    }
    

    最终会生成如下图的配置,我们可以通过下面代码进行获取

    String name = BuildConfig.name;
    int age = BuildConfig.age;
    


    值的一提的是,我们设置 String 类型的参数时,需要加上 “” 双引号(如例子中的name属性)。切记!

    4.2 consumerProguardFile(proguardFile)

    • 描述:和上面分享的 3.5 小点的属性 consumerProguardFiles 是一样的作用。只是这里只能设置一个 混淆文件。
    • 使用方法:
    defaultConfig {
    	consumerProguardFile('consumer-rules.pro')
    }
    

    4.3 consumerProguardFiles(proguardFiles)

    • 描述:和上面分享的 3.5 小点的属性 consumerProguardFiles 是一样的作用,而且也是多个混淆文件。
    • 使用方法:
    defaultConfig {
    	consumerProguardFiles('consumer-rules.pro', 'zincPower-rules.pro',.....)
    }
    

    4.4 maxSdkVersion(maxSdkVersion)

    • 描述:设置应用的最高支持版本,一般我们不会进行设置
    • 使用方法:
    defaultConfig {
    	// 最高支持28版本
    	maxSdkVersion 28
    }
    

    4.5 minSdkVersion(minSdkVersion)

    • 描述:设置应用的最低支持版本
    • 使用方法:
    defaultConfig {
    	// 最低支持19版本
    	minSdkVersion 19
    }
    

    4.6 missingDimensionStrategy(dimension, requestedValue)

    • 相似方法:missingDimensionStrategy(dimension, requestedValues) 区别在于第二个参数可以设置多个风味。
    • 参数说明:
      (1)dimension:维度
      (2)requestedValue:风味(如果为 requestedValues 则是风味列表)
    • 描述:忽略在 Library 中的渠道设置,即维度(dimension)和风味(flavor),如果不进行忽略,在进行引入的时候会无法进行。
    • 使用方法:

    我们的项目结构如下

    zinclibrarybuild.gradle 中编写了如下渠道配置

    // 创建 风味维度
    flavorDimensions('zinc', 'handsome')
    // 创建产品风味
    productFlavors {
        minApi13{
            dimension 'zinc'
        }
        minApi23{
            dimension 'zinc'
        }
        x86{
            dimension 'handsome'
        }
        arm64{
            dimension 'handsome'
        }
    }
    

    此时如果直接在 appbuild.gradle 中添加依赖,同步时便会出错

    dependencies {
    	...忽略其他依赖
        implementation project(":zinclibrary")
    }
    

    所以我们需要在 appbuild.gradle 中使用这个参数进行忽略 library 中带来的维度和风味,即使用如下代码

    defaultConfig {
        missingDimensionStrategy 'zinc', 'minApi13', 'minApi23'
        missingDimensionStrategy 'handsome', 'x86', 'arm64'
    }
    

    4.7 resConfig(config)

    • 描述:保留的资源配置。
    • 使用用法:
    defaultConfig {
    	// 这样我们编译出的apk中,只有 “默认” 和 “中文zh” 两种资源
    	resConfig "zh"
    }
    

    4.8 resConfigs(config)

    • 描述:保留的资源配置,和 resConfig 的区别在于,resConfigs 保留多个资源。
    • 使用用法:
    defaultConfig {
    	// 这样我们编译出的apk中,只有 “默认” 、 “中文zh” 和 “英文en” 两种资源
    	resConfigs "zh","en"
    }
    

    4.9 resValue(type, name, value)

    • 描述:添加 value 资源
    • 使用用法:
    defaultConfig {
    	// 添加至 res/value,通过 R.string.age 获取
        resValue('string', 'age', '12year')
    }
    

    4.10 targetSdkVersion(targetSdkVersion)

    • 描述:应用的目标版本。说明我们已经对指定的版本进行了测试,在开发过程中可以使用至该版本的API,否则会被提示无法使用。如果不设置,则和 minSdkVersion 的值保持一致。
    • 使用用法:
    defaultConfig {
    	targetSdkVersion 28
    }
    

    三、写在最后

    Gradle 的配置文件看起来好像挺乱,其实是因为我们没有进行整体的梳理,所以这段时间,小盆友会不断的进行整理并结合在项目中用到的分享出来。如果喜欢的话请给我一个赞,并关注我吧。文章中如有写的不妥的地方,请评论区与我讨论吧,共同进步。

    展开全文
  • python interpreter什么意思-Python

    千次阅读 2020-11-01 12:44:04
    Python 2 & 3 Interpreter for Apache Zeppelin Configuration Property Default Description python python Path of the already installed Python binary (could be python2 or python3). If python is not in ...

    Python 2 & 3 Interpreter for Apache Zeppelin

    Configuration

    Property

    Default

    Description

    python

    python

    Path of the already installed Python binary (could be python2 or python3).

    If python is not in your $PATH you can set the absolute directory (example : /usr/bin/python)

    Enabling Python Interpreter

    In a notebook, to enable the Python interpreter, click on the Gear icon and select Python

    Using the Python Interpreter

    In a paragraph, use %python to select the Python interpreter and then input all commands.

    The interpreter can only work if you already have python installed (the interpreter doesn't bring it own python binaries).

    To access the help, type help()

    Python modules

    The interpreter can use all modules already installed (with pip, easy_install...)

    Use Zeppelin Dynamic Forms

    You can leverage Zeppelin Dynamic Form inside your Python code.

    Zeppelin Dynamic Form can only be used if py4j Python library is installed in your system. If not, you can install it with pip install py4j.

    Example :

    %python

    ### Input form

    print (z.input("f1","defaultValue"))

    ### Select form

    print (z.select("f1",[("o1","1"),("o2","2")],"2"))

    ### Checkbox form

    print("".join(z.checkbox("f3", [("o1","1"), ("o2","2")],["1"])))

    Zeppelin features not fully supported by the Python Interpreter

    Interrupt a paragraph execution (cancel() method) is currently only supported in Linux and MacOs. If interpreter runs in another operating system (for instance MS Windows) , interrupt a paragraph will close the whole interpreter. A JIRA ticket (ZEPPELIN-893) is opened to implement this feature in a next release of the interpreter.

    Progression bar in webUI (getProgress() method) is currently not implemented.

    Code-completion is currently not implemented.

    Matplotlib integration

    The python interpreter can display matplotlib graph with the function z.show().

    You need to have matplotlib module installed and a XServer running to use this functionality !

    %python

    import matplotlib.pyplot as plt

    plt.figure()

    (.. ..)

    z.show(plt)

    plt.close()

    z.show function can take optional parameters to adapt graph width and height

    %python

    z.show(plt, width='50px')

    z.show(plt, height='150px')

    pythonMatplotlib.png

    Pandas integration

    Zeppelin Display System provides simple API to visualize data in Pandas DataFrames, same as in Matplotlib.

    Example:

    import pandas as pd

    rates = pd.read_csv("bank.csv", sep=";")

    z.show(rates)

    Technical description

    For in-depth technical details on current implementation plese reffer python/README.md.

    展开全文
  •  default是在java8中引入的关键字,也可称为Virtualextension methods——虚拟扩展方法。  是指,在接口内部包含了一些默认的方法实现(也就是接口中可以包含方法体,这打破了Java之前版本对接口的语法限制),...
  • 缺省是什么意思

    千次阅读 多人点赞 2017-05-13 10:19:00
    后来为了理解这个天来之客什么意思,我找到了很多带有这个词语的句子,根据上下文的语境和语义,来推测它到底应该是中文里的何方神圣。  结果……通过大量推测后,觉得应该是默认的意思,但是还不太确定。于是...
  • 字典中setdefault()函数用法

    千次阅读 2018-02-14 11:11:12
    Python 字典中一个 方法 setdefault() 来看下说明 setdefault(key[, default]) If key is in the dictionary, return its value. If not, insert key with a value of default and return default. default ...
  • [转]谨慎使用Encoding.Default

    万次阅读 2017-03-22 14:53:56
    所以在面对中文且为ANSI编码的情况下,最好不要用Encoding.Default,而用 Encoding.GetEncoding("gb2312"),或者更直接的Encoding.GetEncoding(936);而如果有可能的话,最好全部使用unicode,比如utf-8,也就是...
  • 1.trunk是主分支,是日常开发进行的地方。2.branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。...
  • CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些...
  • 文章目录权限修饰符概述不同权限的访问能力default关键字介绍举例 权限修饰符 概述 在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限, public:公共的。 protected:...
  • 在mysql中执行show create table 指令,可以看到一张表的建表语句,example如下: CREATE TABLE `table1` ( `id` bigint(20) unsigned NOT NULL ...`field2` varchar(128) COLLATE utf8_unicode_ci NOT NULL DEFAULT
  • java爬虫

    千次阅读 多人点赞 2019-04-12 11:59:12
    爬虫的基本概念: ...案例一: 爬取起点中文网的小说案例 案例二: 使用爬虫程序登录某个网站, 获取此用户下的信息 1. 爬虫的基本概念 1.1 什么是爬虫: ​ 网络爬虫是一个程序, 采用一种特定的解析结构来获取互...
  • Hadoop的core-site.xml配置文件里的fs.default.name和fs.defaultFS
  • IntelliJ IDEA 学习笔记 - Default Settings

    千次阅读 2018-01-12 16:42:02
    本文介绍IntelliJ IDEA中全局默认设置Default Settings
  • hbase-default.xml详解--注释

    万次阅读 2019-03-08 16:47:46
    -- 不知道干什么用 --> <property> <name>hbase.master.logcleaner.plugins</name> <value>org.apache.hadoop.hbase.master.cleaner.TimeToLiveLogCleaner </value> <description>A comma-separated list ...
  • 默认值(DefaultDefault:默认值,当字段被设计的时候,如果允许默认条件下,用户不进行数据的插入,那么就可以使用事先准备好的数据来填充,通常填充的是NULL mysql> create table default_adult( -> name char...
  • decimal(19,6)什么意思

    千次阅读 2018-10-27 18:38:00
    decimal(19,6)什么意思 数字长度19位,精确到小数点后6位例如0.123456 mysql中varchar(50)最多能存多少个汉字 首先要确定mysql版本4.0版本以下,varchar(50),指的是50字节,如果存放UTF8汉字时,只能存16...
  • MYSQL: set names utf8是什么意思?

    千次阅读 2019-01-27 13:35:26
    一、避免创建数据库及表出现中文 乱码 和查看编码方法 1、创建数据库的时候:CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 2、建表的时候 CREATE TABLE `database_user` ( `ID` varchar...
  • Error: Please renew the default configurations.

    万次阅读 2015-12-07 16:23:33
    需要一层一层的来删除配置,直到恢复到默认的配置。 比如: 配置的时候为: port link-type access port default vlan 4 ...如果直接更改端口模式就会报错为Error: Please renew the ...undo port default vlan 4
  • 单纯从英文翻译为中文来说,default是默认的意思,delete是删除的意思。在这里也是大概这样的意思。=default是保留默认的big five,=delete是删除默认的big five。 写空的类不是空的 什么时候空的类不再是空的呢,当
  • [Err] 1067 - Invalid default value for 's_sex'

    千次阅读 2019-08-14 14:29:00
    原来是因为我建表 默认的表的字符集编码为latin1,插入数字没问题,插入汉字会报错;修改一下表的编码问题就解决了修改表编码:alter table area_detail convert to character set utf8 其中area_detail是你的...
  • input type 有哪些,分别是什么意思

    千次阅读 2013-04-26 18:12:51
    常用限制input的方法 1.取消按钮按下时的虚线框,在input里添加属性值 hideFocus 或者 HideFocus=true 2.只读文本框内容,在input里添加属性值 readonly ...5.只能为中文(有闪动) 6.只能为数
  • VSCode配置 c++ 环境(小白教程)

    万次阅读 多人点赞 2020-01-28 16:26:48
    顺便说一下 vscode 中一些变量代表什么意思 ${workspaceFolder} :表示当前workspace文件夹路径,也即/home/Coding/Test ${workspaceRootFolderName}:表示workspace的文件夹名,也即Test ${file}:文件自身的绝对路径...
  • 新建数据库常见报错(编码格式、默认值无效)1067 - Invalid default value for ' '新建数据库的常见错误无法直接创建数据表默认值无效(1067 - Invalid default value for ' ') 新建数据库的常见错误 我这里使用...
  • string str = "abc123中文汉字"; byte[] bytes = System.Text.Encoding.Default.GetBytes(str); for(int j = 0; j < bytes.Length; j++) { Console.WriteLine(bytes[j])...
  • default中文意思是"默认",在java中能用到default 的只有两个地方 switch语句中使用default 使用方法:(当case里的值与switch里的key没有匹配的时候,执行default里的方法) 在定义接口的时候使用default来...
  • 今天突然被问FromBase64String(String)和Encoding.Default.GetBytes(String)有啥区别,我刚开始学C#对这个一脸懵逼,于是总结一下今天查资料的内容。 首先,什么是Base64? Base64呀,是个加密算法,原理呢在这里不...
  • 小甲鱼零基础入门学习python笔记

    万次阅读 多人点赞 2019-08-14 11:06:30
    应用范围:操作系统、WEB、3D动画、企业应用、云计算 大家可以学到什么:Python3的所有常用语法、面向对象编程思维、运用模块进行编程、游戏编程、计算机仿真 Python 是脚本语言 脚本语言(Scripting language)是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,709
精华内容 20,683
关键字:

default什么意思中文