python3类和对象的概念 - vip共享吧
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们


  • 个人中心
  •  我的主页
  •  我要投稿
  •  会员服务
  •  修改资料
  •  退出登录
导航菜单
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们
Python

python3类和对象的概念

2023/7/28 韩俊  Python教程 107 0

在Python中,类是一种自定义数据类型,用于封装数据和方法。类定义了一个对象的属性和方法,这些属性和方法可以被对象调用。对象是类的实例,具有类定义的属性和方法。

类可以看作是一个模板或蓝图,用于创建对象。对象是类的实例,具有类定义的属性和方法。类定义了对象的属性和方法,而对象则使用这些属性和方法来执行特定的任务。

类是抽象的模板,我们先定义类,然后我们就可以用类这个模板创建出很多对象,比如我们定义一个 Human 类, 然后用 Human 类创建出很多具体的 Human(比如如花,星星,张三)等等。

无论是对于如花,星星还是张三这些具体的人,他们都有一些共同属性(变量)和行为(函数), 我们可以把这些属性和行为定义在他们所属的 Human 类中。

类和对象的定义

Python 使用关键字 class 类名,或者 class 类名() 来定义一个类。


class Human:
    pass

class Human2():
    pass

print(type(Human))   # <class 'type'>
print(type(Human2))  # <class 'type'>


我们定义好了 Human 类,就可以根据 Human 类创建出对象,创建对象是通过类名和小括号来实现。


class Human():
    pass

luren_a = Human()     # 用 Human 类定义一个具体的对象 luren_a
print(type(luren_a))  # <class '__main__.Human'>


我们可以用 Human 类定义多个对象,注意每个对象都是独立的个体。


class Human():
    pass

luren_a = Human()  # 用 Human 类定义一个具体的对象 luren_a
luren_b = Human()  # 用 Human 类定义一个具体的对象 luren_b
print(id(luren_a)) # 139834494871984
print(id(luren_b)) # 139834494206248


我们可以给 Human 类添加变量(属性),该变量叫做类的成员变量,并且可以通过对象访问到成员变量。


class Human():
    name = "zhangsan"

luren_a = Human()
print(luren_a.name)  # zhangsan 通过对象访问对象的属性


我们也可以给 Human 类添加函数(方法),该函数叫做类的成员函数, 但要注意成员函数必须至少有一个参数(我们一般给该参数起名为 self,当然也可以是其它名字), 该参数用来接收调用者本身,调用者本身是 Human 类的一个对象。


class Human():
    name = "zhangsan"

    def getname(self):
        print(id(self))  # self 即是 调用者本身
        print(self.name)

luren_a = Human()
print(id(luren_a)) # 140479241146888

# 通过 luren_a 对象调用成员函数时,Python 解释器会自动把 luren_a 对象本身作为 getname 的第一个实参。
luren_a.getname() # 140479241146888 zhangsan


Python 的类和对象相对其它语言增加的额外特性

Python 允许我们动态的给一个对象绑定属性,比如给我们的 Human 类的某个对象动态绑定一个 age 属性。


class Human():
    name = "zhangsan"

luren_a = Human()
luren_a.age = 18

print(luren_a.age) # 18


Python 还允许我们动态的给一个对象绑定函数,比如给我们的 Human 类的某个对象动态绑定一个 speak 函数。


class Human():
    name = "zhangsan"

def speak():
    print("大家好,我是 zhangsan")

luren_a = Human()
luren_a.speak = speak

luren_a.speak() # 大家好,我是 zhangsan


我们用 Human 类定义好对象后,当给某个对象动态的添加属性和方法时,这些属性和方法并不作用于其它对象。


class Human():
    name = "zhangsan"

def speak():
    print("大家好,我是 zhangsan")

luren_a = Human()
luren_b = Human()

luren_a.age = 18
luren_a.speak = speak

print(luren_a.age)   # 18
luren_a.speak()      # 大家好,我是 zhangsan

print(luren_b.age)   # 错误
luren_b.speak()      # 错误

如果我们想让动态绑定的属性和方法作用于所有对象,可以直接对类进行动态绑定,比如直接对 Human 类进行动态绑定。

class Human():
    name = "zhangsan"

def speak(self):
    print("大家好,我是" + self.name)

luren_a = Human()
luren_b = Human()

Human.age = 18
Human.speak = speak

print(luren_a.age)   # 18
luren_a.speak()      # 大家好,我是zhangsan

print(luren_b.age)   # 18
luren_b.speak()      # 大家好,我是zhangsan

本节重要知识点

理解什么是面向对象

弄明白类和对象的区别

知道 Python 的类和对象中增加的额外特性。

点赞:0 分享 海报 收藏

上一篇
Python3的构造函数和访问控制
下一篇
python3迭代器
作者头像 作者名称 作者性别
韩俊
联系作者 作者主页

热门推荐

1 Python3函数自定义和调用
2 Python3的变量和常量
3 Python3装饰器
4 Python3的构造函数和访问控制
5 Python3的if条件判断
6 Python异常处理

评论列表

取消回复

    •  
      Login

      韩俊

      趁你现在还有时间,尽你自己最大的努力,努力做成你最想做的那件事,成为你最想成为的那种人,过着你最想过的那种生活。这个世界永远比你想的要更精彩,不要败给生活。

      站长 主页
      用户中心
      评论管理
      退出登陆
      • 1236文章
      • 449评论
      • 79微语
  • 广告赞助

  • 二零二三年09月
    一二三四五六日
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
  • 分类

    • 网站模板源码
    • IT技术笔记
    • 好资源分享
    • 共享网络资源
  • 最新文章

      • 小程序隐私保护指引完整填写范本
        • 微信小程序备案时遇到的一些问题
          • 迷雾通:免费科学上网的VPN软件
            • WordPress大前端主题DUX6.4版本免授权无限制版
              • 网站广告计价方式有哪些类型
                • 分析网站收录量减少的原因
                  • Nginx配置图片缓存加速,提高用户体验
                    • nginx负载均衡与正反向代理
  • 热门文章

    • 酷狗音乐VIP账号 酷狗音乐会员账号共享2017.01.29更新
    • 芒果tv vip会员账号 芒果tv会员账号共享2017.01.29更新
    • 爱奇艺vip账号 爱奇艺/PPS会员账号共享2016.12.12更新
    • 优酷/土豆vip会员账号 优酷会员账号共享2017.01.29更新
    • 活动:免费获得爱奇艺VIP/PPS会员账号50天以上的使用权!
    • 酷我音乐VIP账号 酷我音乐会员账号共享2016.12.31更新
    • 暴风影音会员账号 暴风影音会员账号共享2016.12.31更新
    • m1905会员账号 m1905会员账号共享2016.10.21更新
  • 最新评论

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=1766679359

      2345和360修改太厉害,现在都不想给...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3293901900

      感谢大大的分享

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了好奥v:如果没有解析成功,可以切换接口...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=131241242441

      现在视频解析网站怎么用不了啦?

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了全力以赴:已发送

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=471420954

      感谢大佬!麻烦您啦! 模板地址:htt...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=qleez

      感谢大佬!麻烦您啦! 模板地址:htt...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=1184503826

      回复了韩俊:万分感谢!!!

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了Moen:已发送

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了慕子訓Chester:已发送

  • 网站统计 I 当前在线:375人

    • 本站管理:1位
    • 用户总数:601位
    • 置顶文章:0篇
    • 日志总数:1236篇
    • 微语总数:79条
    • 评论总数:449条
    • 标签总数:82条
    • 页面总数:9页
    • 分类总数:14个
    • 链接总数:41条
    • 运行天数:3066天
    • 最后更新:9月19日
    • 登录
    • 注册
    • 找回
    Copyright © 2023vip共享吧网站地图 网站备案豫ICP备19004194号-1

    免责声明:本站资源仅供用于学习和交流,本站部分素材内容来源于网络,如有侵权/投稿等,请及时联系站长.

    • 首页
    • 秒懂百科 秒懂百科
    • 搜索
    • 史上今日
    • 用户

    大家都在搜

    • 小程序
    • 酷我音乐会员账号
    • seo
    • 爱奇艺VIP账号共享
    • 飞卢小说vip账号共享
    • nginx
    • MySql
    • 网易云音乐会员
    • 咪咕会员账号共享
    • 起点vip账号共享
    • PHP
    • 起点账号共享
    • m1905会员账号
    • pptv会员
    • 网站源码
    • 微信小程序源码
    • 
    • 