面向对象 --类
Posted bigbox
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象 --类相关的知识,希望对你有一定的参考价值。
1.类的实例化: 调用类的过程称之为类的实例化,产生的对象也可以称之为类的一个实例
‘‘‘ 调用类产生对象发生的事情: 1.会产生一个空对象的名称空间 2.会自动触发__init__,并且会将对象当做第一个参数传入。 3.会将调用类括号内的参数一并传给__init__(). 4.self代表实例本身 5. 补充: 如果类中没有定义构造,在实例化的时候会默认创建一个空的构造函数 ‘‘‘ class People: country = ‘China‘ def __init__(self,name,sex): print(self.__dict__) print(self) self.name = name self.sex = sex # self.fun = self.func() @@@@@@@@@@ def func(self): print(f‘你的名字是:{self.name},性别是:{self.sex}‘) # p1 = People(‘kimi‘,‘male‘) # p1.func() print(People.country) class method: def fun(): print(‘122343333333333‘) method.fun()
2. 查看类和实例的名称空间:
# print(People.__dict__) # print(p1.__dict__)
3. 通过实例和类对类属性进行操作,类无法修改实例属性(都无法调用何来修改)
# #类或对象的属性操作: 查增改删 # #查 # print(People.country) # 增 People.num = 500 print(People.num) # #改 # People.country = ‘中国‘ # print(People.country) # People.name = ‘呵呵‘ # print(p1.name) # #删 # print(‘#‘*20) # # del People.country # # print(People.country) # # print(p1.name) # p1.sal = 150000000 # print(p1.sal) # p1.age = 16 # print(p1.age) # del p1.sal # print(p1.sal)
4. 类中数据属性(类中的变量): 类中属性是给对象使用的,对象引用类中的属性,指向的都是类中同一个内存地址。
# p_obj1 = People(‘tank‘, ‘male‘) # p_obj2 = People(‘jason‘,‘female‘) # p_obj3 = People(‘大饼‘,‘female‘) # print(p_obj1.country, id(p_obj1.country)) # print(p_obj2.country, id(p_obj2.country)) # print(p_obj3.country, id(p_obj3.country))
5.类中的方法: 类中的方法是给对象使用的,self 即代表函数本身,self.func= self.func()
由不同的对象来调用就会将方法绑定给不同的对象, 并且会将对象当做第一个参数传入
# print(People.learn) # print(p_obj1.learn) # bound method # print(p_obj2.learn) # print(p_obj3.learn)
6.对象属性的查找顺序: 先从对象自己名称空间中查找 ---》 类的名称空间中查找
以上是关于面向对象 --类的主要内容,如果未能解决你的问题,请参考以下文章