python类

类(class)是一种面向对象计算机编程语言的构造,是创建对象
的蓝图,描述了所创建的对象共同的属性和方法
在这里插入图片描述


创建类

用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾:

class ClassName:
   '类的帮助信息'   #类文档字符串
   class_suite  #类体

实例

class HeroK:   # 用驼峰式命名法
    '''
    都是英雄~这个地方是类的文档可写可不写
    '''
    def __init__(self,name):  # 初始化方法
        self.name = name
      

    def herosKangfu(self):    # 普通方法
        return "一阳指"


第一种方法__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法

self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

duanyu = HeroK("段誉")
print(duanyu.name)
kangfu=duanyu.herosKangfu()
print(kangfu)

在这里插入图片描述
在这里插入图片描述

属性

类属性

类属性,又称静态属性——无论实例化多少次也不会改变类里面的属性

class Foo: 
    lang = 'python'   # 此变量在Foo中才可以使用,无法直接调用

Foo.lang              #类里面定义的变量

f=Foo()              #实例化

>>> lang          #无法直接调用
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    lang
NameError: name 'lang' is not defined
>>> dir(Foo)          
['__class__', '__delattr__', ......, 'lang']
>>> Foo.lang
'python'
>>> f = Foo()
>>> type(f)
<class '__main__.Foo'>
>>> dir(f)
['__class__', '__delattr__', ......, 'lang']
>>> f.lang
'python'

 #增加类属性,实例化后的也增加属性
>>> Foo.group = 'xianyu' 
>>> dir(Foo)
>
['__class__',..., 'group', 'lang']
>>> dir(f)
'__class__',..., 'group', 'lang']

>>> f.name = 'yuwang'
# 实例与拥有类属性,但不能修改类属性
>>> dir(f)
['__class__',..., 'group', 'lang', 'name']  
>>> dir(Foo)
['__class__',..., 'group', 'lang']

# 只有通过类才能修改
>>> Foo.group
'xianyu'
>>> f.group
'xianyu'
>>> 

实例属性

实例属性,又称动态属性


>>> class Pia:
	def __init__(self,name):
		self.name = name
#  通过实例创建
>>> b = Pia("xianyu")   
# 不同实例的实例属性不同
>>> dir(b) 
['__class__', '__delattr__', ...... '__weakref__', 'name']
>>> c = Pia("jun")
>>> dir(c)
['__class__', '__delattr__', ...... '__weakref__', 'name']
>>> b.name
'xianyu'
>>> c.name
'jun'

#实例的__dict__显示当前实例的所有属性
>>> b.__dict__
{'name': 'xianyu'}
>>> 

self作用

类方法中,如无特别规定,都是以self作为第一个参数

# self引用当前实例
>>> class Pua:
	def __init__(self):
		print(self)

		
>>> a=Pua()
<__main__.Pua object at 0x0000000002B13FD0>
>>> a
<__main__.Pua object at 0x0000000002B13FD0>
>>> 
相关推荐
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页