本文主要介绍如何在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.__nameAttributeError: 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