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

来源:互联网 发布:最终幻想猫女捏脸数据 编辑:程序博客网 时间:2024/05/01 07:54

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




 

0 0
原创粉丝点击