您的位置:首页 > 编程语言 > Python开发

Python 面向对象、继承部分、正则表达式

2016-11-30 12:31 253 查看
1.初始化实例属性

def __int__(self,name,gender,birth):

     self.name = name

     self.gender = gender

     self.birth = birth

def __int__(self,**kw):

       for k,v in kw.iteritems():

              setattr(self,k,v)

_ _ xxx  不能被外部直接访问

实例属性每个实例各自拥有,相互独立,而类属性有且只有一份。

当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对于类属性的访问。

2.继承一个类

class Person(object):

        def __int__(self,name,gender):

              self.name = name

              self.gender = gender

class Student(Person):

def __int__(self,name,gender,score):

super(Student,self).__int__(name,gender)

                self.score = score     这里不要缩进

3.函数isinstance()可以判断一个变量的类型

isinstance(p,Person)

用type()函数获取变量的类型;

用dir()函数获取变量的所有属性;

getattr(s,'name')         #获取name属性

setattr(s,'name','Adam')    #设置新的name属性

4.正则表达式

   含义:使用单个字符串来描述匹配一系列符合某个句法规则的字符串,可用来处理文本和数据

import re

pa  = re.compile(r'imooc')   源字符串匹配,不转义

ma = pa.match(str1)

ma.group()

ma.string   源字符串

或ma = re.match(r'imooc',str1)

正则表达式语法

.              匹配任意字符(除\n)

[...]          匹配字符集

\d  \D      匹配数字;非数字

\s  \S       匹配空白符;非空白符

\w  \W     匹配单词字符;非单词字符

例:ma = re.match(r'\[[\w]\]','[a]')

*             匹配前一个字符0次或者无限次

ma = re.match(r'[A-Z][a-z]*','Aa')

+                匹配前一个字符1次或者无限次

?                匹配前一个字符0次或者1次

{m}  {m,n}  匹配前一个字符m次或者m到n次

*?  +?   ??  非贪婪匹配(尽可能少匹配)

^                匹配字符串开头

$     匹配字符串结尾

\A  \Z          以指定的字符串开头或结尾

|               左右任一个(或)

(ab)            分组

xml匹配

ma = re.match(r'<([\w]+>)[\w]+</\|','<book>py</book>')

str1 = ' imoocnum  = 1000'

info  = re.search(r'\d+',str1)

python3之后的版本: import urllib.request

python 2.7 

import urllib2

req = urllib2.urlopen('http://www.baidu.com')

buf = req.read()

print buf

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: