随便写写

# _*_ 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)
posted @ 2019-01-06 15:55  五等码农  阅读(119)  评论(0编辑  收藏  举报