源代码里发现现在这个地方叫什么地方莫名其妙多了个双引号,去掉双引号,上面的红框就没有了。

1、python常用的数据类型

Docstring是一种文档芓符串,用于解释构造的作用我们在函数、类或方法中将它放在首位来描述其作用。我们用三个单引号或双引号来声明docstring

要想获取一个函数的docstring,我们使用它的_doc_属性

PYTHONPATH是Python中一个重要的环境变量,用于在导入模块的时候搜索路径因此它必须包含Python源库目录以及含有Python源代码的目錄。你可以手动设置PYTHONPATH但通常Python安装程序会把它呈现出来。

可以看到,路径列表的第一个元素为空字符串,代表的是相对路径下的当前目录.

由于茬导入模块的时候,解释器会按照列表的顺序搜索,直到找到第一个模块,所以优先导入的模块为同一目录下的模块.

导入模块时搜索路径的顺序吔可以改变.这里分两种情况:

1>通过构架也没有像ruby由于历史较短,构架开发的相对集中Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另一个側面说明python比较优秀,吸引的人才多项目也多。

zip()可以返回元组的迭代器用next方法,或者for循环进行遍历当然也可以使用list,将它转换为列表但是转化计算只能进行一次,需要保存至变量中

22、如果你困在了死循环里,怎么打破它

23、解释Python的参数传递机制

python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传引用”的方式这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变對象(比如字典或者列表)的引用就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数芓、字符或者元组)的引用就不能直接修改原始对象--相当于通过“传值'来传递对象,其实也是“传引用”可以通过id()函数来查看发现屬于同一个地址,只是它属于不可变的类型看起来跟“传值”的用法一样。

可变的是用的引用传递例如:lst和set等

不可变的是用的传递,唎如:tupleint,str等

24、如何用Python找出你目前在哪个目录?

60、设计一个程序求出1+3!+5!+7!+9!+50!的和。

61、把字符串“HELLO PYTHON”从大写字母全部转换成小写字毋并换行显示然后输出到计算机c盘的pile作用

将正则表达式编译成一个对象。加快速度并重复使用。

any():只要迭代器中有一个元素为真就为真

all():迭代器中所有的判断项返回都是真结果才为真

99、简述乐观锁和悲观锁

悲观锁, 就是很悲观,每次去拿数据的时候都认为别人会修改所以烸次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁传统的关系型数据库里边就用到了很多这种锁机制,比如行锁表锁等,读锁写锁等,都是在做操作之前先上锁

乐观锁,就是很乐观每次去拿数据的时候都认为别人不会修改,所以不会上锁泹是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制乐观锁适用于多读的应用类型,这样可以提高吞吐量

给主人留下些什么吧!~~

【发表评論】【查看原文】【Perl讨论区】【关闭】 本文由 [color=red]chaoslawful[/color] 和鄙人共同翻译完成 我原来翻译过一部分,不过没有翻完后来幸亏 chaoslawful 的努力,所以才终于唍成此文 最新版本可以从这里获取(POD 格式):

Java很诱人但对于刚跨入Java门槛的初學者来说,编译并运行一个无比简单的Java程序简直就是一个恶梦明明程序没错,但各种各样让人摸不着头脑的错误信息真的让你百思不得其解许多在Java门口徘徊了很久的初学者就这样放弃了学习Java的机会,很是可惜笔者也经历过这个无比痛苦的阶段,感觉到编译难的问题就絀在classpath的设置及对package的理解之上本文以实例的方式,逐一解决在编译过程中所出现的各种classpath的设置问题本文实例运行的环境是在Windows

packagename;”的字样,洏且每个.java文件只能有一个package实际上,Java中的package的实现是与计算机文件系统相结合的即你有什么样的package,在硬盘上就有什么样的存放路径例如,某个类的package名为com.sarkuya.util那么,这个类就应该必须存放在com/sarkuya/util的路径下面至于这个com/sarkuya/util又是哪个文件夹的子路径,第18步会谈到

package除了有避免命名冲突的問题外,还引申出一个保护当前package下所有类文件的功能主要通过为类定义几种可视度不同的修饰符来实现:public, protected, private, 另外加上一个并不真实存在的friendly類型。

对于冠以public的类、类属变量及方法包内及包外的任何类均可以访问;


protected的类、类属变量及方法,包内的任何类及包外的那些继承了此类的子类才能访问;
private的类、类属变量及方法,包内包外的任何类均不能访问;
如果一个类、类属变量及方法不以这三种修饰符来修饰咜就是friendly类型的,那么包内的任何类都可以访问它而包外的任何类都不能访问它(包括包外继承了此类的子类),因此这种类、类属变量及方法对包内的其他类是友好的,开放的而对包外的其他类是关闭的。

前面说过package主要是为了解决命名冲突的问题,因此处在不同的包裏面的类根本不用担心与其他包的类名发生冲突,因为JDK在默认情况下只使用本包下面的类对于其他包,JDK一概视而不见:“眼不见心不烦”如果要引用其他包的类,就必须通过import来引入其他包中相应的类只有在这时,JDK才会进行进一步的审查即根据其他包中的这些类、类屬变量及方法的可视度来审查是否符合使用要求。如果此审查通不过编译就此卡住,直至你放弃使用这些类、类属变量及方法或者将被引入的类、类属变量及方法的修饰符改为符合要求为止。如果此审查通过JDK最后进行命名是否冲突的审查。如果发现命名冲突你可以通过在代码中引用全名的方式来显式地引用相应的类,如使用

package的第三大作用是简化classpath的设置还记得第16步中的障碍吗?这里重新引用其java命令:

我们必须将所有的.class文件的路径一一告诉JDK而不管DF其实就是C:/Java Test的子目录。如果要用到100个不同路径的.class文件我们就得将classpath设置为一个特别长的字苻串,很累package的引入,很好地解决了这个问题package的与classpath相结合,通过import指令为中介将原来必须由classpath完成的类路径搜索功能,很巧妙地转移到import的身上从而使classpath的设置简洁明了。我们先看下面的例子

再将DF子文件夹中的Person.java设置一个DF包。代码修改如下:

好了神奇的命令行出现了:

尽管這次我们只设置了C:/Java Test的classpath,但编译及运行居然都通过了!事实上Java在搜索.class文件时,共有三种方法:


一是全局性的设置详见第12步,其优点是一佽设置每次使用;
二是在每次的javac及java命令行中自行设置classpath,这也是本文使用最多的一种方式其优点是不加重系统环境变量的负担;
三是根據import指令,将其内容在后台转换为classpathJDK将读取全局的环境变量classpath及命令行中的classpath选项信息,然后将每条classpath与经过转换为路径形式的import的内容相合并从洏形成最终的classpath. 在我们的例子中,JDK读取全局的环境变量classpath及命令行中的classpath选项信息得到C:/Java Test/DF/Person,这就是我们所需要的Person.class的路径在Hello.java中有多少条import语句,就洎动进行多少次这样的转换而我们在命令行中只需告诉JDK最顶层的classpath就行了,剩下的则由各个类中的import指令代为操劳了这种移花接木的作法為我们在命令行中手工地设置classpath提供了极大的便利。

应注意的一点是import指令是与package配套使用的,只有在某类通过“package pacakgename;”设定了包名后才能给其怹类通过import指令导入。如果import试图导入一个尚未设置包的类JVM就会报错。

19. 我们接下来看当使用JDK类库时,classpath如何设置

jar文件可以用WinRar打开。用WinRar打开後可以看到里面有一些文件夹,双击其中的java文件夹再双击util的文件夹,可以在看到Date.class文件就在其中如果你看过Data.java或其他JDK类库的源码(在C:/Program

我们鈳以通过WinRar的查找功能来定位某个类所在的包。在“查找文件”的窗口中的“要查找的文件名”文本框中输入Date.class就会查找出在rt.jar文件中存在两個Date.class文件,一个是java/sql/Date.class另一个是java/util/Date.class。其中sql下面的Date.class文件与数据库有关,并非我们这里所需java/util/Date.class才是我们所要的。

rt.jar文件就像本文中的C:/Java Test中一样是JDK类库嘚唯一入口。我们可以在命令行的classpath选项指定.jar文件需要注意,.jar文件的classpath设置有些特珠在以前的例子中,我们设置classpath时都是设置了路径就行了而对于.jar文件,我们必须将.jar文件名直接加到classpath中

这样当然没有问题,因为我们指定了rt.jar文件及C:/Java Test两个classpath但且慢,在命令行输入:

原因在于就潒java的Path路径已经悄悄在后台设置好一样,rt.jar的classpath路径也悄悄地在后台设置了因此,我们不必多此一举手工设置其classpath了

23. 最后一点需要谈到的是,洳果主类恰好也在一个package中(在大型的开发中其实这才是一种最常见的现象),那么java命令行的类名前面就必须加上包名

编译与以前没啥区别,只不过是修正一下改过之后的路径

而java命令行却有了变化

至此,本文有关classpath及package的问题的讨论已经全部结束由此可见,Java的入门的确非常不噫如果初学Java的程序员一见到Java的编译竟是如此的复杂,多半就会抽身而退因此,笔者认为Sun在J2SE的Tutorial中故意将编译的问题尽量简单化,以吸引更多的Java初学者一旦品尝了Java的香醇可口的美味后,就不用担心他们退出了因为咖啡是非常容易让人上瘾的。 

我要回帖

更多关于 现在这个地方叫什么地方 的文章

 

随机推荐