TOP

python-day16(类成员)

一. 成员

  变量

    1. 实例变量. 对象.xxx = xxx  实例变量 >> 字段 >>属性. 给对象用的

    2. 类变量.  直接写在类中的变量就是类变量.  类变量一般用类名来访问.  对象中共性的属性提取出来.

 1 # 实例 变量
 2 # class Person:
 3 #     country = '中国'
 4 #     def __init__(self,name,age):
 5 #         self.name = name
 6 #         self.age = age
 7 # Person.country = '大清'
 8 # print(Person.country) #直接使用类名进行访问
 9 # p1 = Person('alex',30)
10 # p1.country = '中国' #添加了一个实例变量
11 # print(p1.country)
12 
13 # p2 = Person('wisir',145)
14 # print(p2.name)
15 # print(p2.country)
16 #类变量的修改只能通过类名来完成
View Code

  方法

    1. 实例方法.  对象.方法()

    2. 类方法.     类名.方法()

    3. 静态方法.  类名.方法()

 1 # 实例 方法
 2 # class Car:
 3 #     def run(self):
 4 #         print('会跑的车')
 5 #     def fei(self):
 6 #         print('会飞的车')
 7 #     def jump(self):
 8 #         print('you jump i jump')
 9 # c = Car()
10 # c.fei()#调用实例方法
11 # c.jump()
12 # c.run()
13 # -----------------
14 # 类方法
15 # class Lei():
16 #     def chi(self):#实例方法
17 #         print('吃')
18 #
19 #     @classmethod#类方法
20 #     def he(cls): #cls类
21 #         print(cls)
22 #         print('类方法,he')
23 #
24 # print(Lei)
25 # Lei.he()
26 # p = Lei()
27 #
28 # p.chi()
29 #
30 # p.he() #不管用对象还是类去访问类方法,默认传递进去的是类
31 # ----------------------------
32 # 静态方法. 类名.方法()
33 # class Stc():
34 #     @staticmethod
35 #     def fei():
36 #         print('飞上天')
37 # Stc.fei()
View Code

  属性@property

    把方法转化成属性

    对象.属性

 1 # 属性
 2 # class User:
 3 #     def __init__(self,name,birthday,qq,email):
 4 #         self.name = name
 5 #         self.birthday = birthday
 6 #         self.qq = qq
 7 #         self.email = email
 8 #
 9 #     #方法
10 #     @property
11 #     def age(self):#可以把一个方法变成一个属性
12 #         return 2018 - self.birthday
13 # u = User('小黑',2016,9898982,'@qq')
14 # print(u.age())
View Code

二. 私有

  __作为前缀

  在自己类中可以随意访问.  但是出了类任何人都不可以访问这个私有内容

 1 #私有
 2 class Person:
 3     def __init__(self,name):#构造,创建对象的时候自动调用
 4         self.__name = name #私有的
 5         print('这里是构造方法')
 6     def init(self):
 7         print('实例方法')
 8     def __chi(self): #私有的
 9         print('我要吃,疯狂的吃')
10     def he(self):
11         self.__chi() #内部调用
12         print('我是喝',self.__name)
13 p = Person('周杰伦')
14 p.he()
15 ## p.__init__('周杰伦')
16 # p.init()
17 # print(p.__name) #'Person' object has no attribute '__name'
View Code

 

posted on 2018-11-07 15:16  hui_T  阅读(148)  评论(0编辑  收藏  举报