零基础学习python第13课笔记

1.概念:

面向对象(object-oriented ;简称: OO) 至今还没有统一的概念 我这里把它定义为: 按人们 认识客观世界的系统思维方式,采用基于对象(实体) 的概念建立模型,模拟客观世界分析、设 计、实现软件的办法。
    
# 对象是数据+功能组合成的对象构建起来的

# 面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。 

这种方法把软件系统中相近相似的操作逻辑和操作 应用数据、状态,以类的型式描述出来,

# 以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。

类的基本概念及理解
# 类是对象的抽象化,类是一群具有相同特征或行为的事物的统称。
定义类—class

命名规范:驼峰命名法(首字母大写)

class Person_People(): # 定义类
    print(2)
People = Person_People()  # 调用类 ---- 实例化

people_1 = Person_People() # 调用多个
类的属性

​ 类可以看作是独立存放(属性及方法)的空间。

​ 类就像人拥有其独特的特性(属性)以及行动(方法)

# 调用类首先要实例化
class Person_People(): # 定义类
    class_name = '人类'  # 类属性
    class_age = '18'  # 类属性
    
People = Person_People()  # 调用类 ---- 实例,实例化过后它们都可以去调用共同的属性
print(people.class_name)
print(people.class_age)

people_1 = Person_People() # 调用多个
print(people_1.class_name)
print(people.class_age)

# 类查找顺序,先找实例属性-再从类属性找-找不到就报错
# 实例之间的属性不互通,
class Person_People():
    class_name = '人类'
    class_age = '18'

People = Person_People()  

People.sex = '男'
print(People.sex)

                         
print(people_1.class_age)
people_1.sex = '女'
print(people_1.sex)
类与实例之间的联系
# 1.类时一个事物的抽像,不是真实存在的,描绘了事物的共性

# 2.实例:某个事物的具体个体,是该类事物的具体表现,真实存在

私有属性
1.属性前加'_'一个下划线,外部可以直接访问
2.属性前加'_'两个下划线,外部都不可以直接访问
# 这是一种规范,并非限制
# 定义在类中的私有属性也可以被子类继承
class People(): # 定义类
    _age = '18岁' # 外部可以直接访问
    __name = '小玉' # 外部都不能直接访问
xiaoyu = People()
print(xiaoyu._age)
print(xiaoyu._People__name) # __name要通过dir查看方法属性然后根据属性的全称才可以进行访问
print(xiaoyu._People__name+xiaoyu._age)
print(dir(xiaoyu) # 查看方法
深入了解
class People():  # 定义类
    pet = '小黄' 
    _age = 18
    __name = '小玉'
xiaoyu = People()
xiaoyu.pet = '大黄'  # 这里是给pet重新赋值了,但它不会去改变它本身
print(xiaoyu.pet)
print(People.pet)
属性的修改与保护

_和__这是一种规范(约定),没有真正的的限制作用

修改
# -对象名.属性名 = 数据-----直接修改 例: zheng.name
# -对象名.方法名()--------间接修改 例:zheng._People__name

# 为了更好的保存属性安全,既不能随意修改,一般的处理方式为
# -将属性定义为私有属性 例:__name
# - 添加一个可以调用的方法,供调用 例:def get()

class People():
    def __init__(self, name): # 这里self是代表实例本身,也就是People实例化过后,实例就会传到self上
        self.__name = name # 这里是指实例的私有属性叫做name,而name是通过外界传入进来的
        self.age = 18
        
    def go(self):   # 这里的go()是类People里面的方法
        print(f'{self.__name}在走路') # 声明
        
    def get(self): # 这里是指在类里面定义一个方法
        return self.__name # 这里是指返回私有属性
xiaoyu = People('小玉')
print(xiaoyu.__name) # 这里是无法直接调用的,要调用只能通过dir查看方法属性然后根据属性的全称才可以进行访问

print(xiaoyu.age)

names = xiaoyu.get() # 这里是用变量去接收返回值
print(names)

xiaoyu.go() # 调用方法
# 调用类时,它会优先进入初始化,例:
执行顺序People()----__init__()----name----18----xiaoyu
方法
  • 类属性就是针对 类对象定义的属性
    • 使用 赋值语句class 关键字下方可以定义 类属性
    • 类属性 用于记录 与这个类相关 的特征
  • 类方法就是针对 类对象定义的方法
    • 类方法 内部可以直接访问 类属性 或者调用其他的 类方法
class Piao_Liang(): # 定义类
    def __init__(self, name): # 初始化
        self.name = name
        
    def go(self):
        print(self.name)
        
    
    def eat(self):
        self.go

xiaoyu = Piao_Liang('ai小玉')
xiaoyu.go()  # 调用go()方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值