小工具      在线工具  汉语词典  css  js  c++  java

python面向对象

Python,python 额外说明

收录于:152天前

面向对象

种类

# 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。


# 在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。


# class关键字是定义类的关键,括号是继承额类,支持多继承
class Student():
       pass

例子

# 定义类之后就可以通过类来创建实例,类名也可以获取类本身
print(Student)

# 类复制给变量,和方法一样类通过类名和括号调用,括号传递构造方法的参数
student=Student()
print(student)
<class '__main__.Student'>
<__main__.Student object at 0x0000022BBF77C790>

施工方法

# 类的__init__是构造方法
class Student(object):
    def __init__(self,name,id,address):
        self.name=name
        self.id=id
        self.address=address
    def newStudent(self):
        print("Student(name={0},id={1},address={2})".format(self.name,self.id,self.address))

student=Student('zhansna',12,'beijin')
student.newStudent()
Student(name=zhansna,id=12,address=beijin)
# 在构造方法中定义的变量为实例变量,只有在实例中才可以访问

类方法

# 类方法和普通的函数相比,只有一点不同,类方法第一个参数永远this,并且调用时不用传递该参数。

# this表示类本身

class Student(object):
    def __init__(self,name,id,address):
        self.name=name
        self.id=id
        self.address=address
    def newStudent(self):
        print("Student(name={0},id={1},address={2})".format(self.name,self.id,self.address))
        
# newStudent就是类方法,通过实例化类来调用类方法
Student('lihua',2,'tianjin').newStudent()
Student(name=lihua,id=2,address=tianjin)
# 方法处理定义在类中还可以定义在构造方法中为实例方法,只有在实例中才可以访问,不常用。


# 类方法可以通过_来封装

类变量

# 类的变量可以定义在类中为成员变量
# 类的变量可以定义在构造方法中为实例方法,创建实例才可以访问
# 类的变量定义在方法中为局部方法

class Person(object):
    __name__=None
    __age__=None
    
    def __init__(this,name,age):
        this.__name__=name
        this.__age__=age
    def showPerson(this):
        print('Person(name={0},age={1})'.format(this.__name__,this.__age__))
Person('lihua',22).showPerson()
Person(name=lihua,age=22)
继承
# class关键字定义类后,括号中写该类的继承类
class Student():
    pass

# 未定义默认object,所有类都继承object

class Animal(object):
    name=None
    shout=None
class Dog(Animal):
封装

在Python中,变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用__name__、__score__这样的变量名。

要定义私有变量只能是___开头

Person('zhansan',22).__name__
'zhansan'
class Person1(object):
    name=None
    __age__=None
    __id=None
    def __init__(self,name,age,id):
        self.name=name
        self.__age__=age
        self.__id=id
person1=Person1('zhansan',22,123456789)
print(person1.name)
print(person1.__age__)
print(person1.__id)

zhansan
22



---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

~\AppData\Local\Temp/ipykernel_8584/1129592823.py in <module>
     10 print(person1.name)
     11 print(person1.__age__)
---> 12 print(person1.__id)


AttributeError: 'Person1' object has no attribute '__id'
# 类变量可以在构造方法中定义,实例变量只能在实例中访问

# 通过定义setter和getter方法对成员变量更改和获取
多态
# 继承的最大的好处是子类获得了父类的全部功能。

# 子类也可以增加一些额外的方法,或对父类的方法重写

. . .

相关推荐

额外说明

关于redis客户端连接失败的问题

链接服务器的Redis(由于远程连接不上,使用服务器连接,也连接不上产生) Unable to connect to remote host: Connection refused 连接不上,有可能是服务没有对外开放。 1. 修改redis配置:redi

额外说明

解决JS浮点计算精度损失问题,目前最好的方法之一

解决方案: 本质在处理这类问题的时候,基本思路都是通过把浮点数转换为整数来进行计算,然后再将整数的小数点位调整,转换成正常的浮点数得到结果, 但是这种方法还是会有一些问题,接下来可以看看这种方法,简单实用 Math.formatFloat = funct

额外说明

Android实战跑腿项目——gradle配置

QQ 1274510382 Wechat JNZ_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群649347320 共享学习 QQ群674240731 纪年科技am

额外说明

FLEX RSL(让你的swf瘦身)

FLEX发布体积过大是每个使用FLEX开发的朋友都知道的 那是因为FLEX在发布的时候会带一个框架文件,框架文件包含了所有的Flex内置类... 该文件大小大概是500多K,以致一个空的FLEX项目.发布后就有500多K 所以FLEX提供了RSL(run

额外说明

正则表达式规则以及贪婪匹配与非贪婪匹配

VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新.

额外说明

consul在node中的实现

一、使用docker在本地电脑上启动安装consul 1、安装docker curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun curl -sSL https://get.

额外说明

【踩坑篇】代码中使用 Long 作为 Map的Key存在的问题

本周的工作结束,详述一些在项目代码中实际遇到的一些坑。 代码中遇到这样一个场景: 有个业务接口,接口返回的值是一个JSON格式的字符串,通过JSON解析的方式,解析为格式为: Map<Long, Map<String, Object>> 的数据格式。 然

额外说明

【软考 系统架构设计师】原创必过论文④ 论基于构件的软件开发

>>回到总目录<< 文章目录 论基于构件的软件开发 范文 摘要 正文 论基于构件的软件开发 软件系统的复杂性不断增长、软件人员的频繁流动和软件行业的激烈竞争迫使软件企业提高软件质量、积累和固化知识财富,并尽可能地缩短软件产品的开发周期。 集软件复用、分布

额外说明

Linux通配符

Linux通配符 通配符 就是键盘上的一些特殊字符,可以实现特殊的功能,例如模糊搜索一些文件。 文件名 通配符 模糊匹配 luffy * luffyalex     luffychao     luffycunzhang       oldboy ? o

额外说明

解决Windows系统找不到dfshim.dll文件出现错误问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个dfshim.dll文件(挑

ads via 小工具