当前位置:首页 » 编程语言 » python写类

python写类

发布时间: 2023-01-31 15:25:46

python中的类与java有什么不同

同:
都有类变量,Java中也叫静态变量
都有构造函数
都有实例方法
异:
语法写的时候Python class名称后面带(),而Java声明类需要指定类的类型
java中的实例变量需要声明,而Python中不用声明直接在构造函数中用self.name指定就可以了
python貌似没有类方法
声明一个对象的时候Java 在声明一个新的对象的时候,先执行类变量的加载,如果有父类,先加载父类的变量;然后执行实例变量的加载;然后执行构造函数,如果父类有默认的构造函数,先执行父类的构造函数,然后再执行子类的构造函数 如果父类不存在默认的构造方法,则子类必须通过super调用父类的构造方法 |||||||||||python不会默认执行父类的构造方法,除非指定super().__init__()
Java中.java的名字和该文件中的类必须是同名的 例如Car.java 中必须有一个pulic class Car;python中文件名和文件中类的名字不用对应,例如my_car.py中可以写一个class Car(),并且一个.py中文件中可以出现多个并列的类
python中一个类可以作为实例变量

Ⅱ Python写类

创建类的方法比较简单,如下:

class Person:
注意,类的名称一般用大写字母开头,这是惯例。当然,如果故意不遵循此惯例,也未尝不可,但是,会给别人阅读乃至于自己以后阅读带来麻烦。既然大家都是靠右走的,你就别非要在路中间睡觉了。
接下来,一般都要编写构造函数,在写这个函数之前,先解释一下什么是构造函数。
复制代码 代码如下:
class Person:
def __init__(self, name, lang, website):
self.name = name
self.lang = lang
self.website = website
上面的类中,首先呈现出来的是一个名为:__init__()的函数,注意,这个函数是以两个下划线开始,然后是init,最后以两个下划线结束。这是一个函数,就跟我们此前学习过的函数一样的函数。但是,这个函数又有点奇特,它的命名是用“__”开始和结束。
请看官在这里要明确一个基本概念,类就是一种对象类型,和跟前面学习过的数值、字符串、列表等等类型一样。比如这里构建的类名字叫做Person,那么就是我们要试图建立一种对象类型,这种类型被称之为Person,就如同有一种对象类型是list一样。
在构建Person类的时候,首先要做的就是对这种类型进行初始化,也就是要说明这种类型的基本结构,一旦这个类型的对象被调用了,第一件事情就是要运行这个类型的基本结构,也就是类Person的基本结构。就好比我们每个人,在头脑中都有关于“人”这样一个对象类型(对应着类),一旦遇到张三(张三是一个具体人),我们首先运行“人”这个类的基本结构:一个鼻子两只眼,鼻子下面一张嘴。如果张三符合这个基本机构,我们不会感到惊诧(不报错),如果张三不符合这个基本结构(比如三只眼睛),我们就会感到惊诧(报错了)。
由于类是我们自己构造的,那么基本结构也是我们自己手动构造的。在类中,基本结构是写在__init__()这个函数里面。故这个函数称为构造函数,担负着对类进行初始化的任务。
还是回到Person这个类,如果按照上面的代码,写好了,是不是__init__()就运行起来了呢?不是!这时候还没有看到张三呢,必须看到张三才能运行。所谓看到张三,看到张三这样一个具体的实实在在的人,此动作,在python中有一个术语,叫做实例化。当类Person实例化后立刻运行__init__()函数。

Ⅲ Python类的继承与多态详细介绍

类(Class): 用来描述具有相同的属性和方法的对象的集合。

类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

类有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用

self:self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。

类调用 Car.weight

实例化 car01=Car(5)

实例对象调用 car01.weght

我们在构造类时,Python3默认我们继承了object这个基类,我个人理解object就是个空的类,可以不用管为何要在括号中写上object,这是Python3的特性,在python2中如果你没有写object的话不会默认继承了object这个基类。

同样的我们自己希望继承的父类只需要把objetc改为我们自己定义的类名即可。子类中可以拥有父类中所有的公有属性和方法,但是可以通过在变量名前加下划线使其变为私有,这样子类就不可以访问父类中的成员了。

以下三个公交车类的父类均为客车类,我们可以写一个funcs方法使得每次调用funcs方法时,传入不同的对象以执行不同的func方法,具体实现如下:

主函数

可以看到,我将小 汽车 实例化为带有重量为5t的一个具体对象,将客车实例化为带有重量为20t的一个具体对象,将三个公交车实例化为带有重量为15t的一个具体对象.

如上图所示,我每次在调用funcs方法时都传入了一个实例化对象,funcs根据不同的对象执行相应的内部方法。

Ⅳ python中如何定义类

输入class ......(......处自己写):
然后在四个空格后面输入def ......(......)(建议加一个self)

Ⅳ python类的定义与使用是什么

类Class:用来描述具体相同的属性和方法的对象的集合。定义了该集合中每个对象所共有的属性和方法。对象是类的示例。

类定义完成时(正常退出),就创建了一个 类对象。基本上它是对类定义创建的命名空间进行了一个包装;我们在下一节进一步学习类对象的知识。原始的局部作用域(类定义引入之前生效的那个)得到恢复,类对象在这里绑定到类定义头部的类名(例子中是 ClassName )。

基本语法

Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。它不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像它们的语法那样经常有特殊情况和意外。

以上内容参考:网络-Python

Ⅵ 用Python的类与对象

class Student():
def __init__(self,name,age,score):
self.name = name
self.age = age
self.score = score

def get_name(self):
return self.name

def get_age(self):
return self.age

def get_course(self):
return max(self.score)

st = Student('张三', 20, [150, 88, 100])
print(st.get_name())
print(st.get_age())
print(st.get_course())

Ⅶ Python写一个类,能将任意多条记录性数据写入二进制文件,能自动读出任意一条记录并解码为原始消息

importrandom
classWRB(object):
defWrite(self,Text):
withopen(r'a.text','ab')asf:
f.write((Text+' ').encode('utf-8'))
print((Text+' ').encode('utf-8'))
defRead(self):
withopen('a.text','rb')asf:
text=f.readlines()
a=random.sample(text,1)
print(a[0].decode('utf-8').strip(' '))

test=WRB()
test.Write('测试')
test.Write('测试数据2测试数据2测试数据2测试数2')
test.Read()

Ⅷ 用python3写"类",总是报错AttributeError: 'Mystuff' object has no attribute ''first"

print(thing.first) 这一句是调用 thing 的 first 属性

实际上就是调用 Mystuff 类的 first 属性
但是 Mystuff 这个类的 first 属性没有定义

所以会报错

Ⅸ python中如何定义类

一、类定义:

class <类名>:

<语句>

类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性

如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象

类的私有属性:

__private_attrs两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问

在类内部的方法中使用时self.__private_attrs

类的方法

在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数

私有的类方法

__private_method两个下划线开头,声明该方法为私有方法,不能在类地外部调用

在类的内部调用slef.__private_methods

类的专有方法:

__init__构造函数,在生成对象时调用

__del__析构函数,释放对象时使用

__repr__打印,转换

__setitem__按照索引赋值

__getitem__按照索引获取值

__len__获得长度

__cmp__比较运算

__call__函数调用

__add__加运算

__sub__减运算

__mul__乘运算

__div__除运算

__mod__求余运算

__pow__称方

示例:

[python]view plain

  • #类定义

  • classpeople:

热点内容
安卓和苹果哪个最保值 发布:2024-11-02 02:30:02 浏览:603
桥接的网关服务器地址怎么查 发布:2024-11-02 02:29:11 浏览:861
电脑里dns服务器未响应咋办 发布:2024-11-02 02:28:24 浏览:543
星与云服务器 发布:2024-11-02 02:27:49 浏览:205
centos升级python27 发布:2024-11-02 02:00:57 浏览:673
ue4未找到编译器 发布:2024-11-02 01:46:08 浏览:155
python中的withopen 发布:2024-11-02 01:46:07 浏览:976
编程名人 发布:2024-11-02 01:42:18 浏览:867
服务器电脑配置表 发布:2024-11-02 01:41:29 浏览:370
linux使用串口 发布:2024-11-02 01:37:11 浏览:702