线程较为深的度剖析1
摘要:为了探索同步的特性做了些实验:package com.wjy.synchronize;public class MyThread implements Runnable{ @Override public void run() { // TODO Auto-generated method stub synchronized (this) { for(int i=0;i<10;i++){ try { Thread.sleep(1000); ...
阅读全文
线程同步的故事描述
摘要:最近看了一个描述同步的很好比喻,分享一下:打个比方:一个object就像一个大房子,大门永远打开。房子里有 很多房间(也就是方法)。这些房间有上锁的(synchronized方法), 和不上锁之分(普通方法)。房门口放着一把钥匙(key),这把钥匙可以打开所有上锁的房间。另外我把所有想调用该对象方法的线程比喻成想进入这房子某个 房间的人。所有的东西就这么多了,下面我们看看这些东西之间如何作用的。在此我们先来明确一下我们的前提条件。该对象至少有一个synchronized方法,否则这个key还有啥意义。当然也就不会有我们的这个主题了。一个人想进入某间上了锁的房间,他来到房子门口,看见钥匙在那儿(
阅读全文
Java线程同步
摘要:一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。package com.wjy.synchronize;public class MyThread implements Runnable{ @Override public void run() { // TODO Auto-generated method stub synchronized (this) { for(int i=0...
阅读全文
TCP关闭过程
摘要:状态迁移1. SO_LINGER/ SO_REUSEADDR TCP正常的关闭过程如下(四次握手过程):(FIN_WAIT_1) A ---FIN---> B(CLOSE_WAIT)(FIN_WAIT_2) A B(CLOSED) Ø A端首先发送一个FIN请求给B端,要求关闭,发送后A段的TCP状态变更为FIN_WAIT_1,接收到FIN请求后B端的TCP状态变更为CLOSE_WAIT Ø B接收到ACK请求后,B回一个ACK给A端,确认接收到的FIN请求,接收到ACK请求后,A端的TCP状态变更为为FIN_WAIT_2。 Ø B端再发...
阅读全文
服务端的线程池方案2
摘要:Java提供了一个很好地类来实现1中的线程池功能就是Executors类。将服务端代码改变一下就OK了。当然了,ReceiveFile类还需要改变一下(实现一个Runnable接口,并将receiveFile方法的内容写到run方法中,删除receiveFile方法即可)。package com.wjy.threadpool;import java.io.BufferedInputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.con..
阅读全文
服务端的线程池方案1
摘要:服务端处理客户端的请求,对于Socket采用TCP连接的手段来说,由于一个SocketServer只对应和一个Socket通信。所以,为了有效的控制服务端的服务质量,采取线程池的策略。集体说来就是开启若干个SocketServer来对预想连接到服务器的客户端们进行处理,若是同一时间有很多客户端涌入,线程池中的ServerSocket都不够用了都被占用了,则多余的那些客户端就先等待,等有的ServerSocket执行完之后再来和他们通信处理。具体的最简单的线程池实现如下代码所示(每个ServerSocket实现了接受文件的任务,而假想很多客户端涌入要求向服务端传输文件):package co..
阅读全文
Java使用Socket传输文件遇到的问题
摘要:1.写了一个socket传输文件的程序,发现传输过去文件有问题。找了一下午终于似乎找到了原因,记录下来警示一下: 接受文件的一端,向本地写文件之前使用Thread.sleep(time)休息一下就解决了问题。 个人认为可能是传输过程中,接收端向磁盘写速度有点慢,被后面的覆盖导致错误。//---------------------------------------------------------------------------------------------------------------...
阅读全文
SVNKIT操作SVN版本库的完整例子
摘要:Model:package com.wjy.model;public class RepositoryInfo { public static String storeUrl="http://10.13.30.22/svn/SVNRepository/Checked/"; public static String buffUrl="http://10.13.30.22/svn/SVNRepository/UnChecked/"; public static String sysInfoUrl="http://10.13.30.22/svn/SV
阅读全文
Java对象序列化/反序列化的注意事项
摘要:Java对象序列化 对于一个存在Java虚拟机中的对象来说,其内部的状态只是保存在内存中。JVM退出之后,内存资源也就被释放,Java对象的内部状态也就丢失了。而在很多情况下,对象内部状态是需要被持久化的,将运行中的对象状态保存下来(最直接的方式就是保存到文件系统中),在需要的时候可以还原,即使是在Java虚拟机退出的情况下。 对象序列化机制是Java内建的一种对象持久化方式,可以很容易实现在JVM中的活动对象与字节数组(流)之间进行转换,使用得Java对象可以被存储,可以被网络传输,在网络的一端将对象序列化成字节流,经过网络传输到网络的另一端,可以从字节流重新还原为Java虚拟机中的运行状态
阅读全文
初尝Java序列化/反序列化对象
摘要:看个类:package com.wjy.bytes;import java.io.Serializable;public class ObjTest implements Serializable{ private int age; private String name; public ObjTest(int age, String name) { super(); this.age = age; this.name = name; } public int getAge() { return age; ...
阅读全文
Java的byte数组
摘要:今天我们讨论一下Java的byte数组。byte数组就是字节数组,每一位存一个字节。看下面程序,猜猜输出多少?package com.wjy.bytes;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class ByteArrayTest { public static void main(String args[]){ byte array[]=new by...
阅读全文
在C#或者SWT上跨进程访问SWT控件的问题
摘要:可能为了进程安全,无论是C#的Form还是Eclipse的SWT,都不允许跨进程访问控件。 通俗一点说就是: A进程创建了控件Widget,若想在B进程中访问控件Widget就会报错,必须在创建Widget的进程中访问该控件。即使将进程B的对象写成内部类放在A进程的类中也不行。 解决办法就是: Java:使用Display.getDefault().syncExec(new Runnable() {public void run() {//操作控件的代码。}}); C#:使用delegate 委托。
阅读全文
Enum实现单例模式
摘要:package com.wjy.effective;public enum Singleton { INSTANCE; private int numa; private int numb; public int add(int a,int b){ numa=a; numb=b; return numa+numb; }}客户端代码:package com.wjy.effective;public class TestSingleton { public static void main(String args...
阅读全文
看个泛型的例子
摘要:package com.wjy.effective;public class FStyle { public E getField(E param){ E result=param; return result; }}客户端程序:package com.wjy.effective;public class TestFStyle { public static void main(String args[]){ FStyle fStyle=new FStyle();// int n=fStyle.getField(1)+...
阅读全文
构造器优化需要多个构造器的类(建造者模式)
摘要:package com.wjy.effective;public class BuilderConstr { private final int age; private final int num; private final int size; public int getAge() { return age; } public int getNum() { return num; } public int getSize() { return size; } public ...
阅读全文
线程间操作无效: 从不是创建控件的线程访问它.
摘要:有两种方式解决 1.在窗体构造函数中写Control.CheckForIllegalCrossThreadCalls =false;2.使用Invoke等委托函数。 问题原因是。net2.0以后拒绝多线程访问空间,避免空间造成死锁。以前Control.CheckForIllegalCrossThreadCalls =false;默认就是这样,现在默认为true。如果不会好几个线程同时操作一个控件用方法1就可以。如果存在多个线程一起操作控件使用方法2 方法2可以 Invoke(new MethodInvoker(delegate() ...
阅读全文
SWT中的多线程(Invalid thread access)
摘要:最近在学习swt的东西,遇到一个问题,特转录如下。SWT异常: org.eclipse.swt.SWTException: Invalid thread access在创建SWT界面的线程之外的线程中尝试去修改界面元素.将抛出以下异常Exceptioninthread"Thread-0"org.eclipse.swt.SWTException:Invalidthreadaccessatorg.eclipse.swt.SWT.error(SWT.java:2942)atorg.eclipse.swt.SWT.error(SWT.java:2865)atorg.eclipse.
阅读全文
关于Java中的final关键字
摘要:final关键字可以修饰 类,方法,变量。1.用final修饰的类,不能被继承。2.用final修饰的方法,不能被重写可以被继承。3.用final修饰的变量,不能被改变。
阅读全文
Java使用反射机制优化工厂方法
摘要:我先举个例子,有一个接口People,这个接口有一个方法:package com.wjy.reflect;public interface People { public abstract void show();}有两个类Student,Teacher分别实现了这个People接口:package com.wjy.reflect;public class Teacher implements People{ @Override public void show() { // TODO Auto-generated method stub Syst...
阅读全文
Java反射机制小例子
摘要:package com.wjy.main;import java.io.Console;import java.lang.reflect.Constructor;import java.lang.reflect.Method;import com.wjy.reflect.Student;public class TestMain { public static void main(String args[]){ try{ Class cls=Class.forName("com.wjy.reflect.Student"); //Class cls...
阅读全文
用Java写个ftp传输类实现文件的上传和下载,用ikvmc转成dll
摘要:1.Java类:package com.wjy.ftp.transmission;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;import java.io.StringBufferInputStream;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply;public clas
阅读全文
(转)ikvmc的使用
摘要:IKVM.NET是一个针对Mono和微软.net框架的java实现,其设计目的是在.NET平台上运行java程序。本文将比较详细的介绍这个工具的原理、使用入门(如何java应用转换为.NET应用、),希望能给大家带来惊喜。一、介绍IKVM.NET是一个针对Mono和微软.NET框架的java实现,其设计目的是在.NET平台上运行java程序。它包含了以下的组件:一个用.NET实现的java虚拟机。一个java类库的.NET实现。致力于在java和.NET之间交互的工具。二、IKVM.NET的组件IKVM.NET包含以下的部分:IKVM.Runtime.dll VM运行时和所有支持代码。它包括以
阅读全文
Java字节流和字符流
摘要:file.txt文本中存储的内容:好abc1.字符流处理:package com.wjy.java;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOException; class Test { public static void main(String[] args){ int byteEx;try{ FileReader inputStream=new FileReader("./file/file.txt"); while((byteEx=...
阅读全文
Java提供的enum详解
摘要:今天第一天看>,看了第六章的第一条就是全书的第30条--用enum代替int常量。1.第一次知道原来enum也可以像class那样拥有成员函数。举个四则运算的例子:package com.wjy.test;public enum Operation { PLUS,MINUS,TIMES,DIVIDE; double apply(double x,double y){ switch(this){ case PLUS: return x+y; case MINUS: return x-y; case TIMES: ...
阅读全文
Django写的投票系统4(转)
摘要:原文地址:http://www.cnblogs.com/djangochina/archive/2013/06/04/3114269.html现在已经可以在后台管理投票了,现在就差怎么在前台显示和如何投票了1、index:首先第一个要有首页,用来显示所有的投票2、detail:详细信息页面,用来显示一个投票及相应的选项3、results:结果页面,用来查看一个投票的结果以及一个投票的操作在polls/views.py 页面添加如下代码from django.http import HttpResponsedef index(request): return HttpResponse("
阅读全文
Django写的投票系统3(转)
摘要:Django的管理面板默认是不开启的,所以我们需要进行一些设置工作1、在INSTALLED_APPS里面把django.contrib.admin前面的注释去掉2、运行python manage.py syncdb,建立和管理有关的表3、编辑mysite/urls.py文件,设置管理面板的url路由规则from django.conf.urls import patterns, include, url# Uncomment the next two lines to enable the admin:from django.contrib import adminadmin.autodisc
阅读全文
Django写的投票系统2(转)
摘要:在上一篇中django实例:创建你的第一个应用投票系统(一)已经介绍基本的功能,并已经启动服务了。这一节介绍数据库相关的东东。首页打开mysite/settings.py配置文件,设置数据库打到DATABASESENGINE:这个是所要使用的数据库类型,如 postgresql、sqlite、mysql等。如下设置:django.db.backends.mysqlNAME:数据库的名称或者如果你使用的是sqlite的话就是sqlite的路径。USER :数据库的用户名PASSWORD :数据库密码HOST:数据库地址设置应用APP找到INSTALLED_APPS在这里你看到的这些是django
阅读全文
Django写的投票系统1(转)
摘要:当然主要是从django的帮助文档里面来的,权当是翻译吧这个投票系统的主要功能有1、一个前台页面,可以让用户来投票2、一个管理员页面,可以用来添加、修改、删除投票首页第一步要确定你已经安装了Django,可用如下方法来查看python -c "import django; print(django.get_version())"如果Django已经安装了,则会输出相应的版本,如果没有,或者安装不正确的话会出现如下错误No module named django这个应该的Django和Python版本分别为:Django 1.5 and Python 2.x1、创建项目首页在
阅读全文
使用Django创建简易Blog
摘要:网上看了个例子,但是自己却运行不同,最后终于知道了原因,记录下来。原来没有给settings.py里的INSTALLED_APPS添加blog。就像这样:这是一个手把手的实例教程,本来学习笔记一样,高手请飘过!!!准备:使用python27django 1.4操作系统 win7 64bit第一步:打开cmd输入命令 D:定位到D盘。第二步:在cmd中再输入1python D:/python27/Script/django-admin.py startproject mysite如果项目创建成功。在D盘中应该可以看到多了一个mysite文件夹。这个文件夹的结构应该是如下的:1234567mysi
阅读全文
Windows下安装Django及WEB服务启动
摘要:如果使用的是 Linux 或 Mac OS X ,系统可能已经预装了 Python 。在命令提示符下 (或 OS X 的终端中) 输入python,如果出现python编辑环境,说明 Python 已经装好了。即使Linux系统下未默认安装python,在Linux上安装python和Django也是很简单的事,在Windows下稍微复杂了,可能有环境变量的配置和其他一些问题等。 因为Django本身就是纯Python代码编写的,所以安装Django框架的第一步是先安装Python。Django可以运行在任何Python可以运行的环境,甚至是手机上!目前比较稳定且兼容性较好的是python2.
阅读全文
Python使用MySQLdb操作MySQL
摘要:import MySQLdb,systry: conn=MySQLdb.connect(host='127.0.0.1',port=3306,user='root',passwd='123',db='db1')except Exception,e: print e sys.exit(0) cursor=conn.cursor()try:#Add cursor.execute("insert into table1(name,address,year) values('Jack2','ddd'
阅读全文
MySQLdb 连接Mysql 数据库出错解决
摘要:#coding=utf-8importMySQLdbif__name__=="__main__":db=MySQLdb.connect(host='localhost',port=3306,user='root',passwd=XX',db='XX')cursor=db.cursor()sql="select*fromstudent"cursor.execute(sql)forlineincursor.fetchall():printlinedb.close()运行时出现如下错误:[plain]vi
阅读全文
MySql命令行基本操作
摘要:在MySQL中的命令要以分号结尾1.连接数据库格式:mysql-h主机地址-u用户名-p用户密码1、例1:连接到本机上的MYSQL。首先在打开DOS窗口,然后进入目录mysqlbin,再键入命令mysql-uroot-p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>试验成功由于无密码,用mysql–uroot亦可2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:mysql-h110.110.
阅读全文
Python眼睛护士改进版
摘要:添加了设定从(0,0)显示:self.root.geometry('1000x200+0+0')其实主要是两个0。那个1000和200是没用的,因为已经设定了minsize。添加了窗口置顶:self.root.wm_attributes('-topmost',1)1.主模块,设定时间#-*-coding:utf-8-*-import Tkinter,time,tkMessageBox,sys,BeBigModuleclass MainFrame: def __init__(self): self.frame=Tkinter.Frame() self.frame.
阅读全文
Python的Tkinter将窗口置顶
摘要:root = Tk()root.wm_attributes('-topmost',1)
阅读全文
Python的Lambda表达式
摘要:介绍:Lambda表达式是Python中一类特殊的定义函数的形式,使用它可以定义一个匿名函数。与其它语言不同,Python的Lambda表达式的函数体只能有唯一的一条语句,也就是返回值表达式语句。其语法如下:lambda 形参列表 : 函数返回值表达式语句下面是个Lambda表达式的例子:1234#!/usr/bin/env pythonli=[{"age":20, "name":"def"},{"age":25, "name":"abc"},{"age"
阅读全文
Tkinter隐藏窗口再让他显示出来的例子
摘要:隐藏主要是 : withdraw()函数。 重新显示出来主要是: update()和deiconify()函数。来源:http://www.blog.pythonlibrary.org/2012/07/26/tkinter-how-to-show-hide-a-window/Today we’re going to take a look at Tkinter! I was curious about how one would go about hiding a frame and then re-showing it using Tkinter and I kep...
阅读全文
Python做的眼睛护士
摘要:搞了两天终于搞定了,虽然还存在一点点小问题(窗口的显示位置应该设在(0,0))。但基本可以用了。代码分两个部分。主界面和遮挡屏幕界面。主界面设置完时间后调用遮挡屏幕界面。1.主界面(设置 工作时间 和 休息时间(单位为:秒))#-*-coding:utf-8-*-import Tkinter,time,tkMessageBox,sys,BeBigModuleclass MainFrame: def __init__(self): self.frame=Tkinter.Frame() self.frame.pack() conten...
阅读全文
Python-Tkinter的Entry详解
摘要:#Tkinter教程之Entry篇#Entry用来输入单行文本'''1.第一个Entry程序'''from Tkinter import *root = Tk()Entry(root,text = 'input your text here').pack()root.mainloop()#上面的代码目的是创建一个Entry对象,并在Entry上显示'input your text here',运行此代码,并没有看到文本的显示,由此可知与Lable和Button不同,Entry的text属性不可以设置Entry的文本
阅读全文
Python的TkinterButton做为父窗口
摘要:#-*-coding:utf-8-*-import Tkinter,time,tkMessageBox,sys,BeBigModuleclass MainFrame: def __init__(self,father): self.frame=Tkinter.Frame(father) self.frame.pack() self.entryWorkWidget=Tkinter.Entry(self.frame) self.entryWorkWidget["width"]=35 #这句...
阅读全文
Python用Tkinter的Frame实现眼睛护士的倒计时黑色屏幕
摘要:import Tkinter,timeclass MyFrame(Tkinter.Frame): def __init__(self): Tkinter.Frame.__init__(self) self.grid() self.canvas = Tkinter.Canvas(self, bg='black',width=self.winfo_screenwidth(),height=self.winfo_screenheight()) self.canvas.pack() self.top = self.winfo_...
阅读全文
Python的Tkinter去除边框
摘要:from Tkinter import *class Application(Frame): def __init__(self,master=None, *args, **kwargs): Frame.__init__(self,master, *args, **kwargs) self.grid() self.createWidgets() self.flag=True self.transparent=False self.top = self.winfo_toplevel() ...
阅读全文
Python倒计时器(转)
摘要:# Countdown using Tkinter from Tkinter import *import timeimport tkMessageBoxclass App: def __init__(self,master): frame = Frame(master) frame.pack() self.entryWidget = Entry(frame) self.entryWidget["width"] = 15 self.entryWidget.pack(side=LEFT) self.hi_t...
阅读全文
用Python的Tkinter实现时钟
摘要:import Tkinter,sys,timeroot=Tkinter.Tk()root.minsize(500, 500)Label1=Tkinter.Label(text=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))Label1.pack()def trickit(): currentTime=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) Label1.config(text=currentTime
阅读全文
Python每隔一秒钟打印当地时间
摘要:import threading,timeglobal tdef sayHello(): print time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) t=threading.Timer(1.0,sayHello) t.start()t=threading.Timer(1.0,sayHello)t.start()分析一下以上程序,其实,第二个t=threading.Timer(1.0,sayHello)t.start()仅仅是为了进入sayHello函数,进入该函数之后,sayHello自己就进...
阅读全文
(转)Python获取当时时间
摘要:我有的时候写程序要用到当前时间,我就想用python去取当前的时间,虽然不是很难,但是老是忘记,用一次丢一次,为了能够更好的记住,我今天特意写下python 当前时间这篇文章,如果你觉的对你有用的话,可以收藏下。取得时间相关的信息的话,要用到python time模块,python time模块里面有很多非常好用的功能,你可以去官方文档了解下,要取的当前时间的话,要取得当前时间的时间戳,时间戳好像是1970年到现在时间相隔的时间。你可以试下下面的方式来取得当前时间的时间戳:import timeprint time.time()输出的结果是:1279578704.6725271但是这样是一连串
阅读全文
Java中定时器的使用
摘要:import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;class MyTimerTask extends TimerTask{ SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public void run() { // TODO Auto-generated method stub ...
阅读全文
Python-方法重载的问题
摘要:定义一个父类,在写一个子类继承他,重载他的foo方法:class Father: def foo(self): print"I am father"class Son(Father): def foo(self): print"I am son"son=Son()son.foo() 运行结果://结果I am son但是我们想使用父类的foo怎么办呢,按以下方式就行了,父类名.被重载的方法(这里传入子类对象)Father.foo(son)结果://结果I am father
阅读全文
Python数据结构之注意事项
摘要:1.列表 列表是Python中使用最频繁的数据结构,列表提供很多函数操作,比如下标存取,分片,index,append,remove等等。 例如: list=[1,2,'hello','python']2.元组 元组和列表很相似,元组也提供下标存取,分片但是没有index,append,remove等函数。元组是不可改变的。可以使用 in 查看是否某个元素在此元组中。 元组比列表快,元组可以在字典中用作关键字,但是列表不行。 元组和列表之间可以相互转化。tuple()函数接受一个列表返回一个相同元素的元组。list()函数接受一个元组,返回一个列表。 例如: t
阅读全文
定义Java类的数组的问题
摘要:定义了一个类:class Student{ private int Id; public int getId() { return Id; } public void setId(int id) { Id = id; } }现在想定义这个类的数组,应该这样:Student[] student=new Student[2]; //假定指定数组大小为2但是在执行以下代码的时候就会出错:student[0].setId(111);student[1].setId(112);显示空指针异常。原因就是: 数组指定大小初始化之后,并...
阅读全文
Ubuntu下将vim配置为Python IDE(转)
摘要:工欲善其事,必先利其器。配置好了Django的环境,该把vim好好配置一下当做python的IDE来用。在Windows下用惯了各种现成的工具,转到Linux下,一下没了头绪……好歹google出一些别人的心得,折腾来折腾去,也算是把开发环境配好了。1. 安装完整的vim# apt-get install vim-gnome2. 安装ctags,ctags用于支持taglist,必需!# apt-get install ctags3. 安装taglist#apt-get install vim-scripts#apt-get install vim-addon-manager // 貌似我在安
阅读全文
Python数据结构-序列
摘要:shopList=['apple','orange','pen']print(shopList)print('First thing is: '+shopList[0])print('The last2 thing is: '+shopList[-2])print('the 1 to 2 thing is: '+str(shopList[1:2]))print('the 0 to 2 thing is: '+str(shopList[:2]))运行结果:['apple'
阅读全文
Python数据结构-元祖
摘要:print('%s is %d'%('Tom',5))print('Tom is %d'%5) #等价于: print('Tom is %d'%(5))
阅读全文
Python数据结构-字典
摘要:tel={'jack':101,'tom':102}tel['sunny']=103print(tel)print(tel['tom'])del tel['tom']print(tel)print(tel.keys())运行结果:{'jack': 101, 'tom': 102, 'sunny': 103}102{'jack': 101, 'sunny': 103}dict_keys(['jack', 'sunn
阅读全文
Python数据结构-序表
摘要:序表解包:list=['aa','bb','cc'][a1,a2,a3]=list
阅读全文
Python的控制结构(转)
摘要:首先我的工作第一语言是c/c++(面向对象子集)。选择学习python一方面是因为看很多人都说python开发效率高,所以想验证一下;另一方面,Eric S. Raymond在文章:如何成为一名黑客 中对python的推荐。还有一方面,python的设计哲学:用一种方法,最好是只有一种方法来做一件事,这一点我比较认同。好了,我选择的入门资料是python简明教程。下面是我学习时的一些笔记和思考,上面有很明显的c和C++的痕迹。 控制结构:有c没有的自然字符串的概念。不支持i++。我对此表示欢迎。++会诱导程序员新手犯错误。我在c中基本上抛弃了++。python没有switch,可以使用if e
阅读全文
Python面向对象编程
摘要:1.类的定义:class : class (父类名): 例如:class Father: _age=22 _name="sunny"class Son(Father): _work="IBM"son=Son()print(son._name)print(son._work)运行结果://结果sunnyIBM2.如果直接使用类名修改其属性,那么将影响那些没有改变此属性值的已经实例化的对象的该属性值。有点绕,举个例子:class Sample: _attribute=88sample1=Sample()sample1._attribute=66sample2
阅读全文
第一个Python程序的Hello Python,竟然有问题
摘要:print 'hello python'运行时显示:SyntaxError: invalid syntax解决办法: 这应该是版本的问题,Python2的话直接就可以输出,但是到了Python3需要放到括号里,你可以查配套的文档.修改为:print ('hello python')
阅读全文
Eclipse上运行Python,使用PyDev
摘要:转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-pydev/index.html级别: 初级郑 伟芳(zhengwf@cn.ibm.com), 软件工程师, IBM2008 年 11 月 27 日PyDev for Eclipse 是一个功能强大且易用的 Eclipse Python IDE 插件。本文将向读者介绍 PyDev 开源项目及其安装配置方法,并在此基础上详细介绍如何利用 PyDev 插件把 Eclipse 变为功能强大且易用的 Python IDE,如何利用其进行 Python 程序的开发和调试。通过本文,读
阅读全文