IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python面向对象 -> 正文阅读

[Python知识库]python面向对象

类名:类的名字
属性:这类事物有什么特征
方法:这类事物有什么行为

面向对象的三个的特性:封装, 继承, 多态

小明今年189岁,身高222米,每天早上跑步,跑完吃饭。

人类:(命名的首字母大写)
属性:age, height
形为:run, eat

?
??
?
?

                                             类的创建
class Cat():
    def eat(self):
        print("i am a cat")

    def run(self):
        print("i am run")


tom = Cat()
tom.name = "tom"
tom.eat()

1.如果没有在class中定义一些属性
  可以直接在外面加上,但是不建议还是在类的内部添加,这只是给某一个对象添加了属性(这里是tom)

class Cat():
    def eat(self):
        print("i am a cat")
        print("%s 是一只猫" % self.name)
        
2.eat(self)  中的self我理解的就是你创建对象的地址,换句话说就是self就是tom对应的地址
									         init函数
def __init__(self):
    print("这是一个初始化方法")


tom = Cat()

init是一个内置函数,写了之后在**最开始创建对象的时候就会调用**这个,这里写了tom = Cat()这个之后就会
调用init函数中写的东西了    

self.属性名 = 属性的初始值    就可以了
如self.name = "tom"   那么创建的对象的name都是tom了
如果不想被定死,就传一个name进来

def __init__(self, name):
    self.name = name


tom = Cat("大猫")    然后可以打印出来看看
print("tom.name = %s " % tom.name)

						删除对象的(自己会调用)
def __del__(self):
										str函数
def __str__(self):
   return "hello world! wo shi %s " % self.name

tom = Cat("tom")
print(tom)

可以在**打印这个对象**的时候输出的就是str函数里面的东西了(这样就可以直接输出
猫的名字了,不用tom.name)str函数里面的return必须是字符串

is 身份运算符
用于比较两个对象的内存地址是不是一样的,是不是对同一个对象的引用和== 是有区别的

**私有属性、方法:**
在定义属性或者是方法的时候,在属性名字或者是方法名的前面添加**两个下划线**,就是私有属性或者是方法

self.__name = name

但是只要(_类名__属性)就可以了
Python中没有真正的私有
**继承:有传递性**
1.只需要在class dog(animal):  在子类的后面加上括号,括号里面添加父类名字就好了,父类可以
是多个,逗号隔开就好了(要尽量避免多个父类存在同名的方法和属性)如果有只能说第一个是亲爹,
其他是干爹,如果亲爹有就轮不到干爹了

2.父类的方法如果不满足,子类可以重写一个函数,来满足自己的需求,重写可以是不一样的
或者是一样(覆盖)的函数名

3.如果只是拓展,就是父类中写的方法不够,你只是想要在子类中进行补充,还是要先写上你要写的,然后
调用super().xxxx(xxx就是父类中的方法) 或者是父类.xxx(self)也是调用父类(不推荐使用)

4.父类的私有属性是不可以被子类的方法访问的,父类的私有属性可以被父类的共有方法访问

5.mro:method resoulution order 方法搜索顺序
print(xxx.__mro__) xxx就是类名(注意是类名还是对象名)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-26 08:49:10  更:2021-11-26 08:51:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:31:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码