Python面向对象-属性方法

 1 #
 2 #     包含属性和方法
 3 #     属性包括实例变量和类变量
 4 #         什么时候用到类变量: 中国人->国籍
 5 #         私有属性: __name
 6 #     方法:
 7 #         构造方法
 8 #         析构方法: 析构函数不管写不写都会执行  写相当于重构 不写:本身就有一个析构方法
 9 # 对象
10 #     实例化一个类之后得到的对象
11 # 封装
12 #     把一些功能的实现细节不对外暴露
13 # 继承 实现关联和重用
14 #     代码的重用
15 #     单继承:
16 #     多继承:
17 #         2.7 经典类 深度优先搜索  新式类  广度优先
18 #         3.0 都是广度优先搜索
19 #         写成新式类
20 #         继承父类时 使用super写法: super(子类名称, self).__init__(父类的变量) #多继承时体现优势
21 # 多态
22 #     一种接口 多种实现 #animal基类 拓展猫狗等动物
23 # 组合的方式实现关联和重用:
24 #     self.person = Person(self.obj) #在类的init构造方法中直接实例化一个类来组合拓展 或者直接传入某对象
25 
26 
27 # 静态方法
28 #     只是名义上归类管理  实际上在静态方法里访问不了类或者类中的属性
29 # @staticmethod  # 静态方法实际上和类没什么关系了,截断了和类之间的关联,只是类下面的一个参数; 和类之间的关系就是 要通过类名来调用  类的工具包
30 # @classmethod  #类方法只能访问类变量不能访问实例变量
31 # @property   #属性方法 把一个方法变成一个静态属性
32 '''
33 #静态方法
34 class Dog(object):
35     def __init__(self, name):
36         self.name = name
37 
38     @staticmethod # 静态方法实际上和类没什么关系了,截断了和类之间的关联,只是类下面的一个参数; 和类之间的关系就是 要通过类名来调用
39                     #类的工具包
40     def eat(self, food):
41         print("%s is eating %s" %(self.name, food))
42 
43 
44 d = Dog("LL")
45 d.eat("包子")
46 '''
47 '''
48 #类方法
49 class Dog(object):
50     n = 333
51     def __init__(self, name):
52         self.name = name
53         self.n = 444
54 
55     @classmethod  #类方法只能访问类变量不能访问实例变量
56     def eat(self, food):
57         print("%s is eating %s" %(self.n, food))
58 
59 
60 d = Dog("LL")
61 d.eat("包子")
62 '''
63 #属性方法
64 class Dog(object):
65     def __init__(self, name):
66         self.name = name
67         self.__food = None
68 
69     @property   #属性方法 把一个方法变成一个静态属性
70     def eat(self):
71         print("%s is eating %s" %(self.name, self.__food))
72     @eat.setter  #给属性方法赋值 要写在属性方法的下面
73     def eat(self, food):
74         print("set food:", food)
75         self.__food = food
76     @eat.deleter  #给属性方法删除值
77     def eat(self):
78         del self.__food
79         print("删完了")
80 
81 d = Dog("LL")
82 d.eat
83 d.eat = "米田共"
84 d.eat
85 
86 # del d.name #name属性被删除
87 # d.eat
88 
89 # del d.eat #属性方法删除
90 # d.eat

 

转载于:https://www.cnblogs.com/fuyuhao/p/7120180.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值