[简明python教程]学习笔记2014-05-04

今天学习的内容:

1.面向对象编程的概念

1)面向对象的三个基本特征:封装、继承、多态

2)类和对象是面向对象编程的2个主要方面。类使用class关键字创建。类的域和方法被列在一个缩进块中。

2.类

[root@reed 0504]# cat simpleclass.py
#!/usr/bin/python
class Person:
        pass #an empty block
#       print 'my name is reed'
p=Person()
print p
[root@reed 0504]# ./simpleclass.py
<__main__.Person instance at 0x7f7f2f968098>


3.对象的方法

[root@reed 0504]# cat method.py
#!/usr/bin/python
class Person:
        def sayHi(self):
                print 'hello,my name is reed'
p=Person()
p.sayHi()
[root@reed 0504]# ./method.py
hello,my name is reed


4.__init__方法:__init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的 初始化 。注意,这个名称的开始和结尾都是双下划线。

[root@reed 0504]# cat class_init.py
#!/usr/bin/python
class Person:
        def __init__(self,name):
                self.name=name
        def sayHi(self):
                print 'hello,my name is',self.name
p=Person('reed')
p.sayHi()
[root@reed 0504]# ./class_init.py
hello,my name is reed


5.类与对象的方法

[root@reed 0504]# cat objvar.py
#!/usr/bin/python
#filename:objvar.py
class Person:
        population=0
        def __init__(self,name):
                self.name=name
                print '(initializing %s)'%self.name
                #when this person is created,he/she adds to the population
                Person.population+=1
        def __del__(self):
                print '%s says bye'%self.name
                self.__class__.population-=1
                if self.__class__.population==0:
                        print 'i am the last one'
                else:
                        print 'there are still %d people left'%Person.population
        def sayHi(self):
                print 'hi,my name is %s'%self.name
        def howMany(self):
                if Person.population==1:
                        print 'i am the only person here'
                else:
                        print 'we have %d persons here'%Person.population
swaroop=Person('swaroop')
swaroop.sayHi()
swaroop.howMany()
print '--------------'
reed=Person('reed')
reed.sayHi()
reed.howMany()
print '--------------'
deer=Person('deer')
deer.sayHi()
deer.howMany()
print '--------------'
swaroop.sayHi()
swaroop.howMany()
[root@reed 0504]# ./objvar.py
(initializing swaroop)
hi,my name is swaroop
i am the only person here
--------------
(initializing reed)
hi,my name is reed
we have 2 persons here
--------------
(initializing deer)
hi,my name is deer
we have 3 persons here
--------------
hi,my name is swaroop
we have 3 persons here
deer says bye
there are still 2 people left
swaroop says bye
there are still 1 people left
reed says bye
i am the last one


6.继承:继承完全可以理解成类之间的类型和子类型的关系

[root@reed 0504]# cat inherit.py
#!/usr/bin/python
#filename=inherit.py
class SchoolMember:
        def __init__(self,name,age):
                self.name=name
                self.age=age
                print 'Initialized SchoolMember:%s'%self.name
        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 'Initalized Teacher:%s'%self.name
        def tell(self):
                SchoolMember.tell(self)
                print 'Salary:"%d"'%self.salary
class Student(SchoolMember):
        def __init__(self,name,age,marks):
                SchoolMember.__init__(self,name,age)
                self.marks=marks
                print 'Initialized Student:%s'%self.name
        def tell(self):
                SchoolMember.tell(self)
                print 'Marks:"%d"'%self.marks
t=Teacher('Mrs.Reed',40,30000)
t.tell()
s=Student('Lemon',22,75)
s.tell()
[root@reed 0504]# ./inherit.py
Initialized SchoolMember:Mrs.Reed
Initalized Teacher:Mrs.Reed
Name:"Mrs.Reed"Age:"40"
Salary:"30000"
Initialized SchoolMember:Lemon
Initialized Student:Lemon
Name:"Lemon"Age:"22"
Marks:"75"

7__del__方法:在对象消逝的时候被调用



本文出自 “[reed@卢伟开~]#rm -rf /” 博客,谢绝转载!

你可能感兴趣的:(python)