part_63:python_面向对象的内置方法

1、构造函数(初始化方法__init__)

  • init()方法: 当使用类名()创建对象时,Python解释器会自动执行以下操作:
  • 为对象在内存中分配空间———创建对象
  • 调用初始化方法为对象的属性设置初始值——初始化方法(init)
    这个初始化方法是对象的内置方法,是专门用来定义一个类具有哪些属性的方法
"""
# _*_coding:utf-8 _*_
Name:面向对象_02.py
Date:4/10/19
Author:LiMin
Connect:[email protected]
Desc:
"""
class Student():
    name = ''
    age = 0
    def __init__(self,name,age):
        print('这是一个构造函数')
        self.name = name  #self.name(属性名) = 形参 接收外部传递的参数
        self.name = name
        self.age = age
    def do_homework(self):
        print('homework')
student1 = Student('老李',38) ##使用类名()创建对象时,会自动调用初始化方法
print(student1.name)
print(student1.age)
student1.do_homework()
运行结果:
这是一个构造函数
老李
38
homework

2、__str__方法

  • str ( ): 在Python中,如果直接输出创建的对象,会输出这个变量引用的对象是由哪一个,类创建的对象以及在内存中的地址(十六进制)。如果希望使用print输出对象变量,能够打印自定义的内容,就可以利用str内置方法
class Dog():
    def __init__(self,name):
        self.name = name
    def __str__(self):
        return '这是%s' %(self.name) #必须返回一个字符串
Snoopy = Dog('snoopy')
print(Snoopy)
运行结果:
这是snoopy

3、实例练习

  • 面向对象实现栈
"""
# _*_coding:utf-8 _*_
Name:面向对象_03.py
Date:4/10/19
Author:LiMin
Connect:[email protected]
Desc:
"""
class Stack():
    def __init__(self):
        self.stack=[]
    def push(self,value):
        self.stack.append(value)
        return True
    def pop(self):
        if self.stack:
            item = self.stack.pop()
            return item
        else:
            return False
    def top(self):
        if self.stack:
            return self.stack[-1]
        else:
            return False
    def length(self):
        print(len(self.stack))
    def view(self):
        print(self.stack)
stack = Stack()
stack.pop
stack.push('123')
stack.push('12')
stack.view()
print(stack.top())
stack.length()
stack.pop()
stack.view()

猜你喜欢

转载自blog.csdn.net/qq_42311209/article/details/89184597