开始之前首先介绍一下self的用法
self:哪一个对象调用的方法,self就是哪一个对象的引用可以使用 .属性名 利用赋值语句就可以在类的外部给对象增加属性(不推荐),将对象的属性封装在类中
初始化方法
1.init()方法
当使用类名()创建对象时,Python解释器会自动执行以下操作:
1)为对象在内存中分配空间———创建对象
2)调用初始化方法为对象的属性设置初始值——初始化方法(init)
这个初始化方法是对象的内置方法,是专门用来定义一个类具有哪些属性的方法
例子:
class Cat():
def __init__(self,name):
print('这是一个初始化方法')
self.name = name
def eat(self):
print('%s爱吃鱼' %self.name)
cat = Cat('tom')
print(cat.name)
hello_kitty = Cat('HK')
print(hello_kitty.name)
hello_kitty.eat()
执行结果
扫描二维码关注公众号,回复:
5263142 查看本文章
2.__str__方法
1)str ( ) 在Python中,如果直接输出创建的对象,会输出这个变量引用的对象是由哪一个,类创建的对象以及在内存中的地址(十六进制)
2)如果希望使用print输出对象变量,能够打印自定义的内容,就可以利用str内置方法
例子:
class Cat():
def __init__(self,name):
self.name = name
def __str__(self):
return '我是%s' %self.name
tom = Cat('粉条')
print(tom)
结果:
3.练习题
使用面向对象,实现栈的功能
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):
return len(self.stack)
def view(self):
return ','.join(self.stack)
s = Stack()
s.push('1')
s.push('2')
item = s.pop()
print(item)
print(s.view())
ok~