python中类怎么定义

技术python中类怎么定义这篇文章主要介绍了python中类怎么定义,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。类的定义# class是定义类的关键字

本文主要介绍如何在python中定义类,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章后有很多收获。让边肖带你去了解一下。

类的定义

#class是定义类的关键字,ClassName是类的名称。

类名:

#在这里写点别的。

及格

类名(对象):

#在这里写点别的。

Pass是最简单的类定义。在python3之后,类定义通常继承对象类,但是如果它们不继承,也没有太大问题。

00-1010类对象也称为实例。

#这是创建类对象(实例),A既是实例又是对象。

A=ClassName()

类对象

类包含:类变量、局部变量和实例变量。

00-1010类变量:类的所有实例化对象同时共享类变量,即类变量作为公共资源存在于所有实例化对象中。

类名(对象):

#定义类变量

name='Tom '类方法可以通过两种方式调用,要么直接使用类名,要么使用类的实例化(对象)。类变量值可以通过类名修改,修改后会影响所有实例化对象。

#通过类名直接调用

打印(类名.名称)

#创建类的实例(对象)

a=类名()

b=类名()

//通过类的实例调用

打印(a.name)

打印(b.name)

“蒂姆”

打印(a.name)

打印运行结果(b.name)为:

汤姆(男子名)

汤姆(男子名)

汤姆(男子名)

定时(timing的缩写)

定时(timing的缩写)

但是,如果实例的类变量的值被修改,通过类名修改变量的值不会影响此实例的类变量。

a=类名()

b=类名()

a.name='asf '

打印(a.name)

打印(b.name)

ClassName.name='aaa '

打印(a.name)

打印(b.name)运行结果:

asf

asf

美国汽车协会

根据运行结果,对象A的名字值改变后,对象A的名字变量值在调用Class Name.name='Pig '后不变

00-1010局部变量:局部变量只在类方法中定义,只能在方法中使用。

类名(对象):

#这是一种方法。

deffunction(self):

#这是一个局部变量。

Name='Tom'name是在类方法中定义的,所以是局部变量,不能在外部调用,只能在方法中使用。

00-1010实例变量:以self形式定义的变量。变量名,称为实例变量(属性)

类名(对象):

#这是一个实例变量。

定义功能1(自):

赛尔夫=汤姆

定义功能2(自):

Print(self.name)只在调用方法的对象上工作,并且可以在其他方法中调用。

类名=类名()

ClassName.function()运行结果:

汤姆(男子名)

如果__init__()方法中定义的实例变量只能由对象名访问。

类名(对象):

def__in

it__():
self.name = "Tom"
className = ClassName()
print(className.name)

运行结果:

Tom

私有变量

__name这就是私有变量,在变量前面加两个_self.__name也是私用变量,私有变量在类外部无法直接进行访问。

class ClassName(object):
	# 定义了一个私有类变量
	__name = "Tom"
    
ClassName.__name

运行结果:

---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-8-08830fea0534> in <module>
2 __name = "Tom"
3
----> 4 ClassName.__name

AttributeError: type object 'ClassName' has no attribute '__name'
 

类的方法

在类里面用def关键字来定义方法,也叫函数。与普通方法的区别是,必须需要一个self的参数,self代表类自身

class ClassName(object):
	def function(self,a):
		pass

def为定义函数的关键字,function为函数的名称,

特殊方法

1.__init__()用来初始化类的参数一般叫构造方法
这个方法,我们一般类都会用到。

class ClassName(object):
	def __init__(self):
		self.name = "aaa"

当类实例化时,会自动调用__init__

2.__call__()将对象当做函数时调用。

class ClassName(object):
	def __init__(self):
		self.name = "aaa"
	def __call__(self):
		print("aaa")
c = ClassName() // 类实例化,执行了__init__()方法
c() //执行了__call__()方法

3、__get__()类作为另一个类的属性时自动调用

class ClassName:
	def __init__(self):
		pass
	def __get__(self,instance, owner):
		print("__get__调用了")
class ClassName2:
		a = ClassName()

运行结果:__get__调用了

4、__new__() 是一种负责创建类实例的静态方法,且该方法会优先 __init__() 初始化方法被调用。

。。。还有很多其他的类特殊方法

继承

继承在生活中是获得父辈的财产,在编程语言中是获得父类的所有变量,方法。通过继承从类上衍生出新的类

单继承

简而言之,是继承一个类,所继承的类为基类(父类),继承者为子类

# 父类
class A:
	pass
# 子类,继承了A类
class B(A):
	pass

上面是个简单的继承,子类在类名后面的括号内写要继承的类的名称。

# 父类
class A:
	name = "Tom"
	def getName(self):
		print("..")
# 子类,继承了A类
class B(A):
	pass
b = B()
print(b.name)
b.getName()

运行结果:

Tom
..

发现B类没有写什么变量和方法,却调用了A类的变量(属性)和方法
当然如果不想要父类的某个变量或方法,可以重写这个变量或方法

# 父类
class A:
	name = "Tom"
	def getName(self):
		print("..")
# 子类,继承了A类
class B(A):
	def getName(self):
		print("bbb")
b = B()
print(b.name)
b.getName()

运行结果:

Tom
bbb

多继承

多继承从名称上来看,是继承了多个类

class A:
	pass
class B:
	pass
class C(A, B):
	pass

上面这个C类同时继承了A类,B类

感谢你能够认真阅读完这篇文章,希望小编分享的“python中类怎么定义”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/77264.html

(0)

相关推荐

  • 什么叫奇数什么叫偶数,合数、质数、偶数、奇数怎么分辨

    技术什么叫奇数什么叫偶数,合数、质数、偶数、奇数怎么分辨质数与合数,是从约数的个数进行区别的,一个大于1的整数,如果只有1和它本身两个约数,那么这个数就叫做质数什么叫奇数什么叫偶数;如果除了1和它本身还有其它的约数,这个

    生活 2021年10月23日
  • CSS兼容中如何进行IE6中背景图片设置

    技术CSS兼容中如何进行IE6中背景图片设置这篇文章将为大家详细讲解有关CSS兼容中如何进行IE6中背景图片设置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。CSS兼容:

    攻略 2021年11月11日
  • dremio mysql arp 扩展

    技术dremio mysql arp 扩展 dremio mysql arp 扩展开发此arp 扩展的目的是增强dremio 对于类mysql 数据库的兼容(比如oceanbase。。。doris 暂时

    礼包 2021年11月18日
  • 怎样可以,一个人怎样才能实现自己的目标

    技术怎样可以,一个人怎样才能实现自己的目标在现实生活和工作中,有些人看到周围许多人取得了成绩,再看看自己,就会产生落差感,继而困惑:为什么别人总是比我成功怎样可以?为什么我总是在原地踏步?遇到这种情况,应先问问自己:“我

    生活 2021年10月21日
  • php正则表达式提取手机号(php正则表达式使用手册)

    技术php可以使用正则表达式吗这篇文章主要为大家展示了“php可以使用正则表达式吗”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php可以使用正则表达式吗”这篇文章吧。

    攻略 2021年12月19日
  • 电脑的用户名和密码怎么查看,宽带用户名和密码怎么查看

    技术电脑的用户名和密码怎么查看,宽带用户名和密码怎么查看宽带用户名和密码查看方法如下电脑的用户名和密码怎么查看:1、首先打开浏览器,然后在地址栏输入路由器在的管理IP地址(地址如果不知道的话,可以看一下路由器背面一般都会

    生活 2021年10月30日