python中类的构成_python面向对象(4)_细分类的组成成员

类的组成成员

1.静态变量

2.私有静态变量

写法如下:

__SkyRabbit="SkyRabbit"

3.特殊方法

写法如下:

def __init__(self,name,age): #特殊方法

self.name = name #对象属性(普通字段)

self.__age = age # 私有对象属性(私有普通字段)

4.普通方法

写法如下:

def func1(self): # 普通方法

pass

5.私有方法

写法如下:

def __func(self): #私有方法

print(666)

6.类方法

写法如下:

@classmethod # 类方法

def class_func(cls):

""" 定义类方法,至少有一个cls参数 """

print('类方法')

7.静态方法

写法如下:

@staticmethod #静态方法

def static_func():

""" 定义静态方法 ,无默认参数"""

print('静态方法')

8.属性

写法如下

@property # 属性

def prop(self):

pass

类的私有成员

对于每一个类的成员而言都有两种形式:

公有成员,在任何地方都能访问

私有成员,只有在类的内部才能方法

私有成员和公有成员的访问限制不同:

静态字段(静态属性)

公有静态字段:类可以访问;类内部可以访问;派生类中可以访问

私有静态字段:仅类内部可以访问;

普通字段(对象属性)

公有普通字段:对象可以访问;类内部可以访问;派生类中可以访问

私有普通字段:仅类内部可以访问;

方法:

公有方法:对象可以访问;类内部可以访问;派生类中可以访问

私有方法:仅类内部可以访问;

私有成员,只能在类的内部使用,不能再类的外部以及派生类中使用.

类的其他成员

方法包括:普通方法、静态方法和类方法,三种方法在内存中都归属于类,区别在于调用方式不同。

实例方法

定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法);

调用:只能由实例对象调用。

类方法

定义:使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法);

调用:实例对象和类对象都可以调用。

静态方法

定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法;

调用:实例对象和类对象都可以调用。

双下方法(后面会讲到)

定义:双下方法是特殊方法,他是解释器提供的 由爽下划线加方法名加爽下划线 __方法名__的具有特殊意义的方法,双下方法主要是python源码程序员使用的,

调用:不同的双下方法有不同的触发方式,就好比盗墓时触发的机关一样,不知不觉就触发了双下方法,例如:init

类方法

使用装饰器@classmethod

静态方法

使用装饰器@staticmethod。

属性

@property

将一个类的函数定义成特性以后,对象再去使用的时候obj.name,根本无法察觉自己的name是执行了一个函数然后计算出来的,这种特性的使用方式遵循了统一访问的原则

由于新式类中具有三种访问方式,我们可以根据他们几个属性的访问特点,分别将三个方法定义为对同一个属性:获取、修改、删除

class Foo:

#获取

@property

def AAA(self):

print('get的时候运行我啊')

#修改

@AAA.setter

def AAA(self,value):

print('set的时候运行我啊')

#删除

@AAA.deleter

def AAA(self):

print('delete的时候运行我啊')

isinstace 与 issubclass

isinstance(a,b):判断a是否是b类(或者b类的派生类)实例化的对象

这是对象

issubclass(a,b): 判断a类是否是b类(或者b的派生类)的派生类

这是类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值