python 面向对象 (三)

一.类和对象

  • 类是现实世界或思维世界的实体在计算机中的反映
  • 它将数据以及这些数据上的操作封装在一起
  • 把类比作一个模版,通过这个模版可以产生很多个对象


二.构造函数

$ vim s3.py

class Student():
    name = ‘‘
    age = 0

    def do_homework(self):
        print(‘homework‘)

student1 = Student()
student2 = Student()
student3 = Student()

print(id(student1))
print(id(student2))
print(id(student3))


#执行
#python2.7 s3.py 

4305810496
4305810640
4305810712

说明:使用student 这个模版来创建对象,student模版创建不同的对象;

 
Step 1.在实例化后几个对象不相同

1.在Student定义__init__函数,与其他函数不同的是__init__是固定,也称为构造函数

$ vim s4.py

class Student():
    name = ‘‘
    age = 0

    def __init__(self):
        print(‘student‘)


    def do_homework(self):
        print(‘homework‘)

student1 = Student()



#执行
说明:打印结果是student,也就是None
$ python2.7 s3.py 
student



2.实现不同对象,__init__()不但可以定义self,还可以定义name,age 等,以此来达到不同对象


Step 2.实例变量与类变量

说明:类变量只是和类关联一起的;实例变量是和对象关联在一起的

1.实例变量 和 类变量导致打印结果为空值

class Student():
    name = ‘‘
    age = 0

    def __init__(self,name,age):
        print(‘student‘)
        name = name
        age = age


    def do_homework(self):
        print(‘homework‘)

student1 = Student(‘小明‘,18)
print(student1.name)
 


# 执行
$ python2.7 s3.py 
student


2.保存特征值

class Student():
    name = ‘‘
    age = 0

    def __init__(self,name,age):
        print(‘student‘)
        self.name = name
        self.age = age


    def do_homework(self):
        print(‘homework‘)

student1 = Student(‘小明‘,‘18‘)
print(student1.name)


#执行(已成功打印)

$ python2.7 s3.py 
小明

说明:使用self来保存特征值,这两段代码实际上是定义了两个实例变量,与类无关,和对象相关
self.name = name
self.age = age



3.同时打印类的变量

# coding=utf-8
class Student():
    name = ‘yunming‘
    age = 0

    def __init__(self,name,age):
        #print(‘student‘)
        self.name = name
        self.age = age


    def do_homework(self):
        print(‘homework‘)

student1 = Student(‘小明‘,18)
print(student1.name)
 
print(Student.name) //打印类变量


#执行
#python2.7 s3.py 

小明
yunming

 推荐:黑河SEO

相关推荐