python登录面向对象_Python_面向对象

一、内容回顾

成员

class Person:

def __init__(self, name, num, gender, birthday):

# 成员变量

self.name = name

self.num = num

self.gender = gender

self.birthday = birthday

# 对象来访问(成员方法)(实例方法)

def eat(self,name):

print("%s吃东西"%self.name)

### 成员:在类定义的变量和方法都被称为成员

变量:

1、成员变量(实例变量)、字段

2、类变量(静态变量)

方法:

1、成员(实例)方法,加了self的,调用的时候,必须用对象去访问

2、类方法   @classmethod def clsMethod(cls) ## 类方法:第一个参数传递的是类名

3、静态方法,当你的方法不需要传递当前类的对象。语法规则:在方法上面加@staticmethod

------>>>>>说一说,静态方法、类方法和实例方法的区别

属性:

用方法描述我们的属性信息

@property ## 表示当前方法是一个属性, 方法的返回就是这个属性的值,不用加括号(就是属性),直接访问属性,实际上访问

的是xxx()方法,返回值就是属性值 ## 方法只能有一个参数,就是self,并且要return

注意:

1、@property 改变一个方法称为属性

2、这个方法只能有一个参数,self

3、必须要有return

私有:

只能在自己类中执行,__方法,__属性,__

二、类与类之间关系

1、依赖关系(紧密程度最低)(大象装冰箱)

最轻的一种关系

在方法中引入领一个类的对象

2、关联关系

类与类之间的关系是比较紧密的。

3、组合关系

4、聚合关系

5、继承关系、实现关系

self :当前执行这个方法的对象

三、类名和对象是否可以作为key

# 对可哈希,内部是否哈希算法 __hash__

1、 class Foo(object): ## 所有的类都会默认继承obj

def __init__(self):

pass

def func(self):

pass

__hash__ = None

dic = {}

dic[Foo] = '12344'  ## 类名是可哈希的

dic[Foo()] = 'hello'  ## TypeError : unhashable type:'Foo'  类中是否包含__hash__

print(dic)

## list dic set 内部中__hash__ = None , 是不可哈希的

eg:

self 到底是谁?

## self 当前访问xx方法的那个对象

四、类中的特殊成员

什么是特殊成员?__init__() 就是一个特殊的成员,带双下划先的那一坨,这些方法

在特殊的场景的时候会被自动的执行。

1、类名()  将 执行 __init__() 构造方法

2、对象()  == >> obj()  会默认执行  __call__ ## python 特有

3、对象[]  ==>> obj[xxxx ]    从对象中获取数据 默认执行 __getitem__()

4、对象[] = xxx  == >> 默认执行 _setitem__()

5、del obj[key]  默认执行_-delitem__()

6、打印对象的时候 会自动执行 __str__()

7、with 对象 as 变量 会自动执行 __enter__ 和 __exit__()

__new__():

1、加载类

2、开辟内存空间

(开辟方法)

def __new__(cls,*args,**kwargs):

return object.__new__(cls)  ## 这句话才是创建对象,其他都是初始化对象

3、初始化这一块内存__init __

五、issubclass 、 type 、isinstance

issubclass  判断xxxx类是否是xxx类的子类

type 给出xxx的数据类型

isinstance 判断对象是否是XXX家族体系的内容,往上找

区分方法和函数:

在外面定义的函数一定是函数

实例方法:   对象.方法   方法       类名.方法   函数

静态方法: 都是函数   @staticmethod

类方法:     都是方法  @classmethod

## 引入两个模块

from types impor

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值