Python 面向对象编程
1 )类的定义:
在 Python 中,同样使用 class 来定义一个类,在类和 C++ 、 Java 不同的地方在于类的方法必须要有一个额外的第一个参数名称,但调用者不需要为该参数赋值, Python 会提供这个值。这个特别的变量指对象的本体,名称是 self ,类似于 C++ 的 this 指针。
示范:
class Person:
def sayHi(self):
print 'Hello, how are you?'
p = Person()
p.sayHi()
2 )类的 __init__ 方法:
该方法类似于 C++ 的构造函数,在一个对象被创建的时候运行,但与构造函数的区别在于其只能有一个参数(除 self 外)
示范:
class Person:
def __init__(self, name):
self.name = name
def sayHi(self):
print 'Hello, my name is', self.name
3 )类的 __del__ 方法
类似于 C++ 中的析构函数,除非你明确的调用 del 对象,否则你不知道该方法何时会被调用
4 )类和对象的变量
类的变量是所有的类的对象都能用的且当其中一个对象改变该值的时候,所有的对象的该值都发生变化。而对象的变量是对象特有的,每一个对象改变该值都不会对其它对象产生影响。该部分对应于 C++ 的类的静态变量和类的成员变量。
示范:
class Person:
population = 0 # population 是类的变量
def __init__(self, name):
self.name = name #self.name 是对象的变量
Person.population += 1
注:通过该方法声明的都是 public 属性,如果想声明 private 属性,可以使用“ __ ”开头,如 __ population = 0
5 )继承
继承的使用非常简单,示范如下:
class SchoolMember:
def __init__(self, name, age):
self.name = name
self.age = age
def tell(self):
print 'Name:"%s" Age:"%s"' % (self.name, self.age)
class Teacher(SchoolMember):
def __init__(self, name, age, salary):
SchoolMember.__init__(self, name, age)
self.salary = salary
print '(Initialized Teacher: %s)' % self.name
t = Teacher('Mrs. Shrividya', 40, 30000)
print # prints a blank line
t.tell()
注: Python 不会调用基类的构造方法,所以需要手动调用,另外 Python 支持多重继承
class Person:
def __init__(self):
print "Person "
class SchoolMember:
def __init__(self, name, age):
self.name = name
self.age = age
class Teacher(Person,SchoolMember):
Python 的输入 / 输出
通过 file 类的 read 、 write 或 readline 方法来读写文件,使用 close 方法关闭文件的使用
打开文件通过 file(“filename”) 来完成