第一章 生成对象
一.面向对象编程
在python中所有的变量都是对象,
整数、浮点数、长整数、字符串、字典、列表在python中也都是对象。
||__所以他们可以直接使用一些函数。
||__从技术上来讲,当创建一个新的变量并且为它设置值时,我们正在创建该数据类型的一个实例。
让代码更加条理,这只是使用对象的好处之一,另外一个更有用的好处是继承。
oop面向对象编程在20世纪50年代就提出了,核心是把数据和函数绑定到一起【组织数据】。
二.规划一个类
类:对象的蓝图。类为对象定义了方法和属性,并且设置了所有的默认值。
子类:当基于一个已有的类生成一个新类时,我们在对其子类化。子类得到父类的所有属性、默认值和函数。
》》》这个对象有什么属性?
》》》将如何改变这些属性?
》》》需要用一种特殊的的方法打印这个对象或者这个对象的某些部分吗?
第二章 生成类
一.生成一个基类的声明
>>>class Myclass(object): #(object)这个定义类是新式的标准,增加类的额外特性
... a=5 #需要养成习惯
... b=2
... c="Hello"
...
>>>new_item=Myclass() #创建实例,生成对象
>>>new_item.a
5
>>>new_item.a=10
>>>new_item.a
10
二.为类增加方法
1.定义类中的方法是类中的一个代码块,类中必须有一个参数【self】!
2.【self】表示用来调用该函数的任何对象;【self】是一个特例:它表示“对象中包含的所有内容”
||__因为我们需要使用当前对象中所存储的属性和方法。
>>>class Myclass(object): #(object)这个定义类是新式的标准,增加类的额外特性
... a=5 #需要养成习惯
... b=7
... def print_a(self):
... print "Hello! Here is a:{}".format(self.a)
...
>>>new_item=Myclass() #创建实例,生成对象
>>>new_item.print_a()
Hello! Here is a:5
三.创建类的实例
__init__() 创建实例的时候,自动调用此构造方法。
||__注意:必须要使用self来在__init__( )函数中定义类的属性。
class Student(object):
def __init__(self,name="",school="",garde=""):
if no name:
name=raw_input("What is the student's name?")
if no school:
school=raw_input("What is the student's school?")
if no garde:
garde=self.get_garde()
self.name=name
self.school=school
self.grade=grade
self.print_student()
def get_garde(self):
while True:
grade=raw_input("What is the student's grade?[k,1-5]")
if grade.lower() not in ['k','1','2','3','4','5']:
print "i'm sorry, but {} isn't valid.".format(grade)
else:
return grade
def print_student(self):
print "Name:{}".format(self.name)
print "School:{}".format(self.school)
print "Grade:{}".format(self.grade)
def main():
student1=Student()
Student2=Student(name="shaoxing",grade="2",school="qinghua")
if __name__ == "__main__":
main()
class Student(object):
def __init__(self,name="",school="",garde=""):
if no name:
name=raw_input("What is the student's name?")
if no school:
school=raw_input("What is the student's school?")
if no garde:
garde=self.get_garde()
self.name=name
self.school=school
self.grade=grade
#减#self.print_student()
def get_garde(self):
while True:
grade=raw_input("What is the student's grade?[k,1-5]")
if grade.lower() not in ['k','1','2','3','4','5']:
print "i'm sorry, but {} isn't valid.".format(grade)
else:
return grade
def print_student(self):
print "Name:{}".format(self.name)
print "School:{}".format(self.school)
print "Grade:{}".format(self.grade)
#增
def print_roster(students):
pring "Students in the system"
for student n students:
print "*"*15
student.print_student()
def main():
student1=Student()
Student2=Student(name="shaoxing",grade="2",school="qinghua")
student3=Studeng(name="dapeng",grade="7",school="beida")
students=[student1,student2,student3]#增
print_roster(students)#增
if __name__ == "__main__":
main()
第三章 通过扩展类来增加功能
【暂停下,完善下列表等等部分,然后再杀回来】