Python学习之面向对象编程学习笔记

"""
第七章 面向对象编程
三大核心:封装、继承、多态
"""
# 7.2.1 类和对象的关系
# 包含关系:这些属性知识这个类下面的不同对象
# 7.2.2 类的定义
# 类必须定义之后才能使用,也可以把类的定义代码放在if语句分支下、或者一个函数内部
"""
if True:
    class ClassName(object):
    abc = "100"

class define_class(self):
    class ClassName2:
    pass
"""
# 7.2.3 self 和 object 参数
"""
先说object,在python中,所有的类都继承于基类object,同时继承基类中所包含的所有方法
下面的self代表类的实例对象,而非类
class ClassName(object):
    def __init__(self):
        print(self)
ClassName()
<__main__.ClassName object at 0x0000022367C6FC40>
"""

"""
7.3.1 类的属性和实例
"""
# 7.3.1 类的属性可以这样引用
class ClassName:
    abc = "100"
print(f"abc={ClassName.abc}")
print("----------")
# 下面的例子中,class_就是类ClassName的一个实例,通过class_ = ClassName()创建该类的实例
# 通过def return_value(self)返回一个值为'300'的字符串,当创建新实例时,就可以通过实例进行调用
class ClassName:
    abcde = "100"
    def return_value(self):
        return "300"
class_ = ClassName() # 创建该类的实例对象
print("abcde="+ClassName.abcde)
print("return_value="+ClassName.return_value(class_))
# 该可以通过实例对象访问属性值
print("class.abcde="+class_.abcde)
print("----------")
# 创建实例时,如果需要为实例属性赋值,则可以使用构造__init__()实现,
# 在创建实例时,构造函数会被默认调用
class ClassName():
    def __init__(self):
        self.value = "300"
class_ = ClassName()
print("class_.value="+class_.value)
print("-----------")
# 构造__init__()可以添加参数
class ClassName:
    def __init__(self, parma):
        self.value = "300"
        self.value_2 = parma
class_ = ClassName("600")
print("class_.value ="+class_.value)
print("class_.value_2 ="+class_.value_2)
print("----------")
# 还可以为类或对象动态的添加、修改或删除属性
class ClassName:
    pass
ClassName.class_value = "300"
print("class_value ="+ClassName.class_value)
class_ = ClassName()
class_.value = "400"
print("value = "+class_.value)
print("----------")
# 7.3.2 对象的属性和方法
# 在创建类的实例对象之后,可以直接访问实例对象的属性值。另外,还可以添加、修改、删除某一属性值
class ClassName:
    def __init__(self, parma):
        self.value = parma
class_ = ClassName(300)
class_.value += 600
print(class_.value)
print('--------')

# 下例子中,由于使用del删除了value_2属性,再次访问时,就会找不到
class ClassName:
    def __init__(self, parame):
        self.value = parame
class_ = ClassName(300)
class_.value_2 = 600
# del class_.value_2 删除的话 ClassName就找不到value_2的属性
print(class_.value)
print(class_.value_2)
print("----------")

'''
在下例子中,可以先将实例对象的方法存储起来,之后在调用。此"方法"一般指特定实例对象可以调用的函数,
通过实例对象调用方法时,实例对象本身self被当作第一个参数传递过去。
'''
class ClassName:
    def return_value(self):
        return "300"
class_ = ClassName()
function_ = class_.return_value()
print(f"return_value={function_}")
print("--------")

# 特别注意的是,python语言对私有成员没有提供严格的访问保护机制,日常使用中可以用
# 可以用两个下划线开头来表示私有属性的定义,如__value,但是在实例对象外部可以以"对象名.__类名__属性名"
class ClassName:
    __value = "300"
class_ = ClassName()
class_.__ClassName__value = "400"
print(f"value={class_.__ClassName__value}")
print("----------")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XF鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值