• 随便写写


    # _*_ coding: utf-8 _*_
    __author__ = 'pythonwu'
    __date__ = "2019/1/4 18:06"

    #鸭子类型
    class Duck(object):
    def quack(self):
    print('quack')


    class Bird(object):
    def quack(self):
    print('bird imitate duck')


    def in_the_same(duck):
    duck.quack()


    duck = Duck()
    bird = Bird()

    for x in [duck,bird]:
    in_the_same(x)


    import math

    class Point(object):
    def __init__(self,x,y):
    self.x = x
    self.y = y

    def __sub__(self, other):
    return Point(self.x- other.x ,self.y - other.y)

    def __add__(self, other):
    return Point(self.x+other.x,self.y+other.y)

    @property
    def xy(self):
    return (self.x,self.y)

    def __str__(self):
    return str(self.xy)


    class Shape(object):
    def __init__(self,points_list):
    for point in points_list:
    assert isinstance(point,Point),"input must be Point type"
    self.points = []
    for point in points_list:
    self.points.append(point.xy)

    @property
    def area(self):
    return 0

    def __bool__(self):
    return self.area >0

    def __lt__(self, other):
    return self.area < other.area

    def __gt__(self, other):
    return self.area > other.area

    class RectAngle(Shape):
    def __init__(self,start_p,w,h,**kwargs):
    self.w = w
    self.h = h
    self.start_p = start_p
    super(RectAngle,self).__init__([start_p,start_p+Point(w,0),start_p+Point(w,h),start_p+Point(0,h)])


    @property
    def area(self):
    return self.w*self.h

    def __contains__(self, point):
    return (point.x <= self.start_p.x +self.w and point.x >= self.start_p.x) and (point.y <= self.start_p.y +self.h and point.y> self.start_p.y)

    start_p = Point(50,60)
    a = RectAngle(start_p,100,80)

    print(start_p in a )

    print(a.points)

    A = {'name':'xiaowang','age':'15'}
    # print(A.name)

    class A(object):
    def __init__(self,name,age):
    self.name = name
    self.age = age

    def __getattr__(self, attr):
    if self.__dict__.get('attr',None) is None:
    return self.__dict__.get('_' +attr ,None)
    else:
    return self.__dict__.get(attr,None)

    def __setattr__(self, attr, value):
    if attr in ['name','age']:
    if value <0 :
    self.__dict__['_' +attr] = 0
    else:
    self.__dict__['_'+ attr] = value
    else:
    self.__dict__[attr] = value
    a = A(1,2)
    print(a.name)
  • 相关阅读:
    Widget Factory
    233 Matrix
    青蛙的约会
    Longge's problem
    密码解锁
    SQFREE
    GCD
    [WC2011]最大XOR和路径
    [HNOI2011]XOR和路径
    [ZJOI2010]排列计数
  • 原文地址:https://www.cnblogs.com/wudeng/p/10229137.html
Copyright © 2020-2023  润新知