剑指 用两个栈实现队列

原题链接

class Solution:
    def __init__(self):
        self.stack1=[]
        self.stack2=[]
    def push(self, node):#进栈进1栈
        # write code here
        self.stack1.append(node)
    def pop(self):#若栈2为空,先push再pop;若栈2不为空,则直接pop
        # return xx
        if self.stack2==[]:
            while self.stack1:
                target=self.stack1.pop()
                self.stack2.append(target)
        return self.stack2.pop()

__init __函数用法:
两个下划线开头的函数是声明该属性为私有,不能在类的外部被使用或访问。__init__函数(方法)的第一个参数必须为self,后续参数为自己定义。这个例子讲的比较好

由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。以学生类为例,通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去:

class Students:
	def __init__(self):#给实例增加了name、score变量
		self.name=name
		self.score=score

调用方法:

class Person:
    def __init__(self, newPersionName):
        self.name = newPersionName
#此处正确的,通过访问self.name的形式,实现了:
# 1.给实例中,增加了name变量
# 2.并且给name赋了初值,为newPersionName

    def sayYourName(self):
        print('My name is %s'%(self.name))
#此处由于开始正确的初始化了self对象,使得其中有了name变量,
#所以此处可以正确访问了name值了
;

p = Person('Bob')
p.sayYourName()   #第一种调用方法
print("-" * 50)
Person('Bob').sayYourName()#第二种调用方法

几种内置函数:
参考链接

__new __(cls, *args, **kwargs)

创建对象时自动调用的函数,主要作用是创建对象,给该对象分配空间,方便之后的的操作;

该函数会返回创建出来的对象实体,一旦正常的返回实体后,调用初始化函数

__init __(self)

初始化函数(构造函数),作用:给当前对象创建各类变量,并给变量赋初值,一般用于对象的初始设置,该函数没有返回值

__ str__(self)

对象描述函数,作用:返回当前对象的字符串类型的信息描述,一般用于对象的直接输出显示

__ del__(self)

删除该对象时会自动调用,一般用于工具型对象的资源回收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值