本文主要是介绍python 面对对象 类基础(上),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
面对对象
程序是由数据和功能组合而成的对象构建起来的,对数据与函数绑定到一起,进行封装,能够更快速的开发程序,减少重复代码
class --- 类,类是对象的抽象化,具有相同特征或行为的事物的统称
类的定义
class 类名():pass
命名规则:驼峰命名法(首字母大写)
class People():pass
类的调用
也叫做 实例化对象
class People():passzhangsan = People()
lisi = Person()# 这是两个不同的实例对象 就像是不同的两个人
类的属性
类可以存放 属性和方法,就像人一样 属性就是 性别 年龄,方法就是吃饭 睡觉 学习
实例化后 可以获得类中所有的属性和方法
在查找属性时,会优先在实例中查找,然后在类中查找
class People():age = 18zhangsan = People()
print(dir(zhangsan)) # 查看属性
print(zhangsan.age) # 18
类与实例之间的关系
- 类是一个事物的抽象,不是真实存在的
- 实例是某个事物的具体个体,是真实存在的
实例也是存放变量的空间,不同实例之间互不可见
class People():sex = '男'lisi = People()
lisi.sex = '女' # 修改属性为 女
lisi.age = 18 # 添加age属性 值为18
print(list.sex) # 女
print(list.age) # 18zhangsan = People()
print(zhangsan.sex) # 男 上面即使修改了sex属性为女 这里依旧是输出 男# 所以各论各的的,实例之间互不干扰
私有属性
- 属性前加 '_' 一个下划线,外部可以直接访问
- 属性前加 '__' 两个下划线,外部不可以直接访问
这是一种规范,并非限制,类中的私有属性也可以被子类继承
class People():_age = 18__sex = '男'zhangsan = People()print(zhangsan._age) # 18
print(zhangsan.__sex) # 看不到,那么如何才能访问呢print(dir(zhangsan))
print(zhangsan._People__sex) # 男
类的方法
也就是像人的 吃饭 睡觉 学习 打游戏
self:实例本身
class People():def eat(self):print('我要吃饭')zhangsan = People()
zhangsan.eat() # 我要吃饭
如果需要传递参数 那么和函数是一样的
class People():def eat(self, name):print(f'{name}要吃饭')zhangsan = People()
zhangsan.eat('张三') # 张三要吃饭
在类里面调用类的属性
class People():name = '张三'def eat(self):print(f'{self.name}要吃饭')zhangsan= People()
zhangsan.eat() # 张三要吃饭
在类的方法里面调用类的其他方法
class People():name = '张三'def eat(self):print(f'{self.name}吃完饭后要', end = '')def shuijiao(self):self.eat()print('睡觉')zhangsan = People()
zhangsan.shuijiao() # 张三吃完饭后要睡觉
改变私有属性
通过添加一个方法来改变私有属性
class People():__name = '张三'def set_name(self, setname):self.__name = setnamezhangsan = People()zhangsan.set_name('李四')
print(zhangsan._People__name)
返回私有属性
class People():__name = '张三'def result(self):return self.__namezhangsan = People()print(zhangsan.result()) # 张三
这篇关于python 面对对象 类基础(上)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!