您的位置:首页 > 编程语言 > Python开发

python多态笔记整理

2017-12-30 18:23 309 查看
多态
1.类属性:属于类的成员,属于对象共有的
2.方法:在方法上添加@classmethod
@classmethod
def cmethod(cls):

    print("这是一个类方法...............")

可以通过类方法分调用类属型,也可以通过对象调用类属型
3.静态方法:方法前加@staticemethod静态方法没有参数,静态方法即和类没关系,也和对象没有关系,也可以通过类和对象调用
@staticmethod
def smethod():

    print("这是一个静态方法")

1. __new__(cls):用来创建对象,而且必须有返回值
return object.__new__(cls)
当有属性时需在__new__()中也添加属性
2. 单例

class singlethon:

    __instance=None
    def
__new__(cls, *args, **kwargs):

        if cls.__instance==None:

            cls.__instance=object.__new__(cls)

            return cls.__instance

        else:

            return cls.__instance

s=singlethon()

ss=singlethon()
print(id(s))
print(id(ss))    输出时两个地址一样

--------------------------------------------------------------------------

用愤怒的小鸟举一个多态例子

class brid:  父类
def __init__(self,name,cut):
self.name=name
self.shout="嗷嗷叫"
self.cut=cut
self.fly="弹射飞"
class fln(brid):   继承父类的方法 子类可以重写父类的方法
def method(self):
self.name="分裂鸟"
self.cut="攻击:分裂攻击"
print("%s %s %s %s" % (self.name, self.shout, self.cut,self.fly))
class hjn(brid):
def method(self):
self.name="火箭鸟"
self.cut="攻击:加速冲撞"
print("%s %s %s %s" % (self.name, self.shout, self.cut,self.fly))
class redn(brid):
def method(self):
self.name="红色鸟"
self.shout="渣渣叫"
self.cut="攻击:普通攻击"
print("%s %s %s %s" % (self.name, self.shout, self.cut,self.fly))
class zdn(brid):
def method(self):
self.name="炸弹鸟"
self.shout="渣渣叫"
self.cut="攻击:爆炸攻击"
print("%s %s %s %s" % (self.name, self.shout, self.cut,self.fly))
class pangn(brid):
def method(self):
self.name="胖子鸟"
self.shout="不叫"
self.cut="攻击:扔蛋"
print("%s %s %s %s"%(self.name,self.shout,self.cut,self.fly))
a=fln(" ", " ")
a.method()
b=hjn(" ", " ")
b.method()
c=redn(" ", " ")
c.method()
d=zdn(" ", " ")
d.method()
e=pangn(" ", " ")
e.method()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: