1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#coding:utf-8
#描述橘子对象的类
class
Orange:
def
__init__(
self
, weight):
self
.weight
=
weight
#实例属性
def
get_weight(
self
):
print
(
self
.weight)
class
HostInfo:
info
=
[]
#类属性
def
add_host(
self
, hostname, ip):
self
.info.append({
"hostname"
:hostname,
"ip"
:ip})
def
get_info(
self
):
print
(
self
.info)
if
__name__
=
=
"__main__"
:
o1
=
Orange(
1.5
)
#橘子1 重量1.5
o2
=
Orange(
2.3
)
#橘子2 重量2.3
o1.get_weight()
#获取重量
o2.get_weight()
#橘子1的重量是1.5,橘子2的重量是2.3,这个所谓的重量(数据)被称为属性,属性通常是可变的,
#橘子类的每一个实例都会有重量这个属性,但是每个实例的属性给定的数据会不相同,也可能相同
h1
=
HostInfo()
#对象h1增加数据
h1.add_host(
"pc"
,
"192.168.1.2"
)
h2
=
HostInfo()
#对象h2增加两条数据
h2.add_host(
"pc"
,
"192.168.1.2"
)
h2.add_host(
"pc"
,
"192.168.1.2"
)
h1.get_info()
#不管是谁添加,大家都能获取到主机信息,
h2.get_info()
#结论:类属性共享于所有实例,实例属性只属于实例本身
|
本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/2055449