• Python学习4



    面向对象
    类中的属性: 域和方法
    类的方法的第一个参数为self(类似于this指针),调用时无需写明
    __init__方法,在类的对象被建立时,马上运行。(类似于构造函数)def __init__(slef, name):
    __del__方法,(类似于析构函数)
    有两种类型的 域:类的变量和对象的变量(类似于c#中静态变量),是否有self来区分两者。
    python中所有类成员是公共的,方法是有效地。例外:双下划线为前缀的数据成员是私有的。
    继承:

     1 # Filename: inherit.py
    2 class SchoolMember:
    3 "'Represents any school member.'"
    4 def __init__(self, name, age):
    5 self.name = name
    6 self.age = age
    7 print '(Initialized SchoolMember: %s)' %self.name
    8 def tell(self):
    9 "'Tell my details.'"
    10 print 'Name: %s, Age: %s' %(self.name, self.age),
    11
    12 class Teacher(SchoolMember):
    13 "'Represents a teacher.'"
    14 def __init__(self, name, age, salary):
    15 SchoolMember.__init__(self, name, age)
    16 self.salary = salary
    17 print '(Initialized Teacher: %s)' %self.name
    18 def tell(self):
    19 SchoolMember.tell(self)
    20 print 'Salary: %d' %self.salary
    21
    22 class Student(SchoolMember):
    23 "'Represents a student.'"
    24 def __init__(self, name, age, marks):
    25 SchoolMember.__init__(self, name, age)
    26 self.marks = marks
    27 print '(Initialized Student: %s)' %self.name
    28 def tell(self):
    29 SchoolMember.tell(self)
    30 print 'Marks: %d' %self.marks
    31
    32 t = Teacher('Mrs.Shrividya', 40, 30000)
    33 s = Student('Swaroop', 22, 75)
    34 print
    35 members = [t, s] #a list
    36 for member in members:
    37 member.tell()
    测试结果:
    (Initialized SchoolMember: Mrs.Shrividya)
    (Initialized Teacher: Mrs.Shrividya)
    (Initialized SchoolMember: Swaroop)
    (Initialized Student: Swaroop)

    Name: Mrs.Shrividya, Age: 40 Salary: 30000
    Name: Swaroop, Age: 22 Marks: 75


    文件
    通过file类的read、readline、write方法读写文件。读写能力依赖于打开文件时指定的模式

     1 # Filename: using_file.py
    2 poem = '''
    3 Programming is fun
    4 When the work is done
    5 if you wanna make your work also fun:
    6 use Python!
    7 '''
    8
    9 f = file('poem.txt', 'w')
    10 f.write(poem)
    11 f.close
    12 # if no mode is specified, 'r'ead mode is assumed by default
    13 f = file('poem.txt')
    14 while True:
    15 line = f.readline()
    16 if (line) == 0: # Zero length indicates EOF
    17 break
    18 print line,
    19 f.close()
    测试结果:
    Programming is fun
    When the work is done
    if you wanna make your work also fun:
    use Python!


    储存器
    python提供一个标准的模块,叫做pickle。可以存储python对象,又可以完整无缺的取出来。
    cPickle用c语言实现,速度更快。

    方法:dump()存入对象到文件。 load()从文件装载对象

     1 # Filename: pickling.py
    2 import pickle as p
    3
    4 # the name of the file where we will store the object
    5 shoplistfile = 'shoplist.data'
    6 shoplist = ['apple', 'mango', 'carrot']
    7
    8 # Write to the line
    9 f = file(shoplistfile, 'w')
    10 p.dump(shoplist, f) # dump the object to a file
    11 f.close()
    12 del shoplist
    13 f = file(shoplistfile)
    14 storedlist = p.load(f)
    15 print storedlist
    测试结果:
    ['apple', 'mango', 'carrot']

    制作自定义的Exception,通常是要继承Exception类。
    错误抛出:raise函数。抛出后,用except去catch并将一场对象传给x。

     1 # Filename: raising.py
    2 class ShortInputException(Exception):
    3 '''A User-defined exception class.'''
    4 def __init__(self, length, atleast):
    5 Exception.__init__(self)
    6 self.length = length
    7 self.atleast = atleast
    8
    9 try:
    10 s = raw_input('Enter something-->')
    11 if len(s) < 3:
    12 raise ShortInputException(len(s), 3)
    13 except EOFError:
    14 print '\nWhy did you do an EOF on me?'
    15 except ShortInputException, x:
    16 print 'ShortException: The input was of length %d was at least %d\
    17 ' %(x.length, x.atleast)
    18 else:
    19 print 'No exception was raised.'
    测试结果:
    >>>
    Enter something-->ab
    ShortException: The input was of length 2 was at least 3
    >>> ================================ RESTART ================================
    >>>
    Enter something-->hello
    No exception was raised.
    >>> ================================ RESTART ================================
    >>>
    Enter something-->

    Why did you do an EOF on me?


    try...finally...finally块是无论如何要执行的。

     1 # Filename: finally.py
    2 import time
    3 try:
    4 f = file('poem.txt')
    5 while True:
    6 line = f.readline()
    7 if len(line) == 0:
    8 break
    9 time.sleep(2)
    10 print line,
    11 finally:
    12 f.close()
    13 print 'Cleaning up...closed the file'









  • 相关阅读:
    Selenium WebDriver基础操作教程
    C# 运行cmd 并 执行命令语句
    【JAVA习题二】判断101-200之间有多少个素数,并输出所有素数。
    【JAVA习题一】古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少?
    【JAVA随摘笔记一】进制转换
    【C++初学者自学笔记三】哑元函数、缺省参数、内联函数(模块二,PS:需要用到重载函数)
    【C++初学者自学笔记二】函数重载(模块一)
    【JAVA蓝桥杯】基础练习2 十六进制转十进制
    【JAVA蓝桥杯】基础练习1 十进制转十六进制
    【C++初学者自学笔记一】(把自己刚学到的东西做一下总结,如果有哪些地方不足请留言指正)
  • 原文地址:https://www.cnblogs.com/forstudy/p/2404099.html
Copyright © 2020-2023  润新知