1、变量表示特征,用函数表示技能,因而具有相同特征和技能的一类事物就是‘类’,对象是则是这一类事物中具体的一个。
2、class 类名:---------->默认格式
3、第一个函数必须是构造函数:def __init__(self,**,**)-------------->必须,执行完init相当于创建了一个对象
4、
1 #新式类:类集成对象
2 #有多种属性类型
3 class xinshi(object):
4 @property
5 def price(self):
6 print('@PROPECTY');
7
8 @price.setter
9 def price(self,value):
10 print('Price.setter');
11 @price.deleter
12 def price(self):
13 print('price.delate');
14 #调用以上新式类的多种属性(通过对象)
15 obj3=xinshi();
16 obj3.price;
17 obj3.price=123;
18 del obj3.price;
19
20 #新式类练习:对商品价格进行修改、删除
21 class mypair(object):
22 #定义商品字段:商品名、商品价格、商品id
23 def __init__(self,c_name,c_id,c_price):
24 self.c_name=c_name;
25 self.c_id=c_id;
26 self.c_price=c_price;
27 #获取商品的价格属性
28 @property
29 def get_peice(self):
30 return self.c_price;
31 #修改商品的价格
32 @get_peice.setter
33 def get_peice(self,value):
34 val=value+self.c_price;
35 print(val);
36 #删除商品的价格属性
37 @get_peice.deleter
38 def get_peice(self):
39 return self.c_price;
40 #调用普通字段(通过对象):并初始化对象数据
41 obj5=mypair('商品1',110,40);
42 print(obj5.get_peice);
43 obj5.get_peice=10;
44 del obj5.get_peice;
45
46
47 #公有和私有
48 class siyou:
49 #定义一个普通字段,其中含有一个公有字段,一个私有字段
50 def __init__(self):
51 self.name1='公有';
52 self.__name2='私有';
53 #类内部访问这个私有字段
54 #print(__name2);
55 #外部访问类的普通字段(通过对象)
56 obj6=siyou();
57 #访问公有
58 #同样的方式无法访问私有
59 print(obj6.name1);
60 #print(obj6.__name2);
61
62
63 class lei:
64 country='min';
65 #定义属性:属性相当于变种的普通方法,即,也必须至少要有一个self参数
66 @property
67 def canshu1(self):
68 return 'XIEXIE';
69
70 def __init__(self,cityname):
71 self.cityname=cityname;
72 #普通方法:至少要有一个self参数
73 def print_name(self):
74 print(self.cityname);
75 #静态方法:无参数
76 def print_name2():
77 print('thankyou');
78 #类方法:至少要有一个clt参数
79 #def print_name3(cls):
80 #print('类方法');
81
82 #调用普通方法:通过对象
83 obj2=lei('janpese');
84 obj2.print_name();
85 #调用属性:跟普通方法一样,需要通过对象
86 obj2.canshu1;
87 #调用类方法,通过类
88 #lei.print_name3();
89
90 #调用静态方法:通过类
91 lei.print_name2();
92 #访问静态对象
93 #通过类可以直接访问静态对象
94 print(lei.country);
95 #访问普通对象
96 #需要先实例化,并附初始值
97 #即,访问普通对象,需要通过对象访问
98 #总结:通过类创建对象时,如果每个对象都具有相同的字段,那么就使用静态字段
99 #总结2:使用变量
100
101
102 #二、方法
103
104 #方法包括:普通方法、静态方法和类方法,三种方法在内存中都归属于类方式,区别在于调用不同。
105
106 #普通方法:由对象调用;至少一个self参数;执行普通方法时,自动将调用该方法的对象赋值给self;
107 #类方法:由类调用; 至少一个cls参数;执行类方法时,自动将调用该方法的类复制给cls;
108 #静态方法:由类调用;无默认参数;
109 ###
110 obj=lei('china');
111 print(obj.cityname);