Python基础-类与对象

1.面向对象的三大特性

  • 封装
  • 继承
  • 多态

2.类与对象的理解与封装特性

类是事物抽象的集合,对象是事物具象的个体。(类–>实例化–>对象)

面向对象编程语言

  • 类: 一个模板, (人类)—是一个抽象的, 没有实体的
  • 对象: (eg: 张三, 李四)
  • 属性: (表示这类东西的特征, 眼睛, 嘴巴, 鼻子)
  • 方法: (表示这类物体可以做的事情, eg: 吃饭, 睡觉,学习)

3.定义类

格式:class 类名(object)

object代表是, 人类继承于哪一个类, 如果不知道继承哪个类, 就写object

class person(object):
    #构造函数
    def __init__(self,name,age,sex) -> None:
        self.name = name
        self.age = age
        self.sex = sex
        pass
    
    #say函数
    def say(self,say):
        print("%s在说话:%s"% (self.name, say))
        pass

    #使用print,返回return的内容
    def __str__(self) -> str:
        return "Persons类的对象 姓名:%s, 年龄:%s, 性别:%s" % (self.name, self.age, self.sex)
        pass
    
    def __del__(self):
        print("名字为%s的对象销毁,执行析构函数"% self.name)
        pass

# 类实例化为对象
p1 = person("deng",18,"男")
p2 = person("xiaodeng",20,"女")

# 调用say函数
p1.say("hello world")

# 使用print,返回__str__(self)中return的内容
print(p1)
print(p2)

# 使用del,返回__del__(self)中return的内容
del p1
del p2

3.类的私有属性与方法

实例:定义一个关于银行用户的类

# 定义一个关于银行用户的类
class BankUser():
    # 定义构造函数
    def __init__(self,username, password, money) -> None:
        self.__username = username  # 在属性名前加上__变为私有属性
        self.__password = password
        self.__money = money

    # 显示用户名的方法(公共方法)
    def showName(self) -> str:
        return self.__username
    
    # 显示用户余额的方法(公共方法)
    def showAccount(self) -> float:
        return self.__money
    
    # 取款的方法
    def withdrawal(self, count) -> bool:
        password = input("请输入帐户密码:")
        # 判断密码
        if password != self.__password:
            print("密码错误")
            return False
        
        # 判断余额
        if count > self.__money:
            print("帐户余额不足")
            return False
        
        # 取款成功
        self.__money -= count
        print('取款成功。帐户余额为:%s'% self.__money)
        
    def __test(self):
        print("这是一个私有的测试方法")
        
    def publicTest(self):
        print("这是一个公有的测试方法")
        # 调用私有的方法
        self.__test()
         
    
    def __str__(self) -> str:
        return "用户:%s, 存款余额为:%s"%(self.__username, self.__money)
    
    
user1 = BankUser("alex", "123123", 1000)

print(user1)
print(user1.showName())  #通过公共方法来执行私有属性
print(user1.showAccount())  #通过公共方法来执行私有属性

# user1.__test()    #调用不了,需要通过一个公共方法来调用这个私用方法,如下所示
user1.publicTest()

# user1.withdrawal(500)

4.类的继承

# 定义一个动物类(基类)
class Animals(object):
    def __init__(self, name, age):
        self.name = name
        self.age= age
        print("动物类的构造函数执行完成")
        
        
    def eat(self):
        print('eating......')
        
# 定义一个狗类(派生类)
class Dog(Animals):
    def __init__(self, name, age, type):
        # 先执行父类的构造函数
        super().__init__(name, age)  # super()方法指向类父
        
        # 添加该类的新的属性
        self.type = type
        print("狗类的构造函数执行完成")
        
    # 狗吃的东西的类进行重写
    def eat(self):
        super().eat()
        print("我喜欢吃骨头")
    
    pass

class Cat(Animals):
    def __init__(self, name, age, color):
        super().__init__(name, age)
        self.color = color
        
    def eat(self):
        super().eat()
        print("我喜欢吃鱼")  

dog1 = Dog("旺财", 2, "中华田园犬")
print(dog1.type)
dog1.eat()

cat1 = Cat("咪咪", 3, "奶牛色")
print(cat1.color)
cat1.eat()
  • 14
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我会尽力回答你的问题。 首先,让我们来谈谈 Python 中的异常处理。在 Python 中,异常是程序在运行时遇到的错误或问题,它会导致程序停止运行并抛出一个异常。为了避免这种情况,我们可以使用 try/except 块来捕获并处理异常。例如: ``` try: # some code that might raise an exception except SomeException: # handle the exception ``` 其中,SomeException 是你想要捕获的异常类型。当代码运行到 try 块中的代码时,如果出现了 SomeException 异常,那么 except 块中的代码就会被执行。 接下来,让我们来谈谈 Python 中的对象。在 Python 中,一切都是对象,包括数字、字符串、函数等等。对象有一个类型,它定义了对象可以执行的操作。例如,数字类型可以执行加、减、乘等操作,字符串类型可以执行拼接、切片等操作。你也可以创建自己的对象,并定义它们的类型和操作。 最后,让我们来谈谈 Python 中的迭代器。迭代器是一种对象,它可以让你逐个访问一个序列中的元素。Python 中的迭代器是通过 __iter__ 和 __next__ 方法实现的。__iter__ 方法返回一个迭代器对象,__next__ 方法返回序列中的下一个元素。例如: ``` class MyIterator: def __init__(self, data): self.data = data self.index = 0 def __iter__(self): return self def __next__(self): if self.index >= len(self.data): raise StopIteration result = self.data[self.index] self.index += 1 return result my_iter = MyIterator([1, 2, 3]) for item in my_iter: print(item) ``` 在上面的例子中,我们创建了一个名为 MyIterator 的迭代器对象。它有一个 data 属性,表示要迭代的序列,以及一个 index 属性,表示当前迭代的位置。__iter__ 方法返回 self,表示它本身就是一个迭代器对象。__next__ 方法返回序列中的下一个元素,并将 index 属性加 1。当迭代器遍历到序列末尾时,会抛出 StopIteration 异常,表示迭代结束。 希望这些信息能够对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

deng_hongbin

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

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

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

打赏作者

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

抵扣说明:

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

余额充值