'''面向对象
一 .类与对象
1.对象的概念:对象==解决问题的事物
2.类:对一些有相同特征和行为的事物的总称
3.类与对象的关系:类用于描述多个对象的共同特征,它是对象的模板
4.建立一个类:
类=类名+属性+方法;
class 类名:
类的属性
类的方法
5.建立对象:
对象名=类名()
6.给对象添加新属性
对象名.属性=
7.访问属性和方法
对象.属性或方法
二 .构造方法和析构方法
1.两个特殊的方法__init__()初始化对象的属性,__del__()释放类所占用的资源,如果有但未调用会在程序结束后自动调用
2.构造方法:
(1)
(2)
3.析构方法:
(1)
三 .self的使用
` 1.在方法定义中,第一个参数永远是self.
2.使用(1)
四 .运算符重载
1.加法重载
2.索引和切片
3.对象转化字符串
'''
# class Cat:
# #属性
# #方法
# def eat(self):
# print("吃鱼")
# #建立对象
# cat=Cat()
# cat.color="黑色"
# cat.eat()
# print(cat.color)
#(2.1)
# class Car():
# def __init__(self):
# self.color="黑色"
# def toot(self):
# print("%s的车在鸣笛"%self.color)
# car=Car()
# car.toot()
#(2.2)
# class Car():
# def __init__(self,color):
# self.color=color
# def toot(self):
# print("%s的车在鸣笛"%self.color)
# car=Car("红色")
# car_1=Car("雪白色")
# car.toot()
# car_1.toot()
#(3.1)
# class Person:
# def __init__(self,name,age,MW):
# self.name=name
# self.age=age
# self.MW=MW
# def me(self):
# print("%s今年%d岁"%(self.name,self.age))
# def __del__(self):
# print("---------def--------")
# person = Person("幻幽",18,"男")
# person.me()
# # del person
# print("---------1---------")
# class Dog:
# def __init__(self,color):
# self.color=color
# def print_color(self):
# print("颜色为%s"%self.color)
# dog_white=Dog("白色")
# dog_white.print_color()
# dog_black=Dog("黑色")
# dog_black.print_color()
#加法
# class Demo:
# def __init__(self,obj):
# self.data=obj[:]
# def __add__(self, obj):
# x=len(self.data)
# y=len(obj.data)
# max=x if x>y else y
# number_list=[]
# for n in range(max):
# number_list.append(self.data[n]+obj.data[n])
# return Demo(number_list[:])
# demo_one=Demo([1,2,3])
# demo_twe=Demo([4,5,6])
# demo_sum=demo_one+demo_twe
# print(demo_sum.data)
#索引与分片
# class Demo:
# #定义构造方法
# def __init__(self,obj):
# self.data=obj[:]
# #定义索引分片运算符
# def __getitem__(self, item):
# return self.data[item]
# demo=Demo([1,2,3,4])
# print(demo[1])
# print(demo[:])
# print(demo[:2])
# for number in demo:
# print(number)
#修改对象序列
# class Demo:
# def __init__(self,obj):
# self.data=obj[:]
# def __setitem__(self, key, value):
# self.data[key]=value
# demo=Demo([1,2,3,4,5])
# print(demo.data)
# demo[0]='abc'
# print(demo.data)
# demo[1:3]=['a','b','c']
# print(demo.data)
#删除元素
class Demo:
def __init__(self,obj):
self.data=obj[:]
def __delitem__(self, key):
del self.data[key]
demo=Demo([1,2,3,4,5])
print(demo.data)
del demo[0]
print(demo.data)
del demo[1:3]
print(demo.data)
#定制对象的字符串形式
# class Demo:
# data_one=100
# #定义为属性data_two赋值的方法
# def set(self,number):
# self.data_two=number
# #重载方法
# def __repr__(self):
# return 'repr转化:data_one=%s;data_two=%s'%(self.data_one,self.data_two)
# def __str__(self):
# return 'str转化:data_one=%s;data_two=%s'%(self.data_one,self.data_two)
# #创建实例
# demo=Demo()
# #调用方法给属性赋值
# demo.set('abc')
# print(repr(demo))
# print(str(demo))
# print(demo)