python类的基础学习笔记

python面向对象程序设计

(来自个人的印象笔记)

---------------------------

类是把具有相同特性(数据)和行为(函数)的对象抽象为类

了解几个术语:

类,类对象,实例对象,属性,函数,方法

------------------------------------------------------------------

定义类:

class Person:(类名默认规定大写字母开头)

    #定义属性

    name = 'james'

    age = 20

    #定义了一个方法

    def printName(self):

          print self.name

p.Person()就产生了一个实例对象

类对象就是类名

p.name就是实例属性

 

访问属性:

两种方法

1.Person.name,Person.age

2.p.name,p.age

通过类名去访问,或者通过对象去访问

 

以上name,age都是公有的属性,定义为私有就在前面加2个下划线__

__name,__age

-------------------------------------------------------------

类的方法:

python的方法有实例方法,类方法,静态方法之分

类方法:@classmethod来修饰

@classmethod

def show(cls):

    ……

类方法调用时会向他的第一个参数传递类的名称,而不是传递实例对象,这就是和实例方法不同的地方

 

静态方法:@staticmethod

不传递任何参数

 

实例方法:def show(self):这种就是实例方法

实例方法通过实例对象来调用:p.show()

Person.show(p)-----self接收的是类的实例对象

实例方法传递的是实例对象,类方法传递的是类名称,这是最大区别

 

类调用实例方法:
Person.instanceShow(p)

对象调用类方法:

p.classShow()

对象调用静态方法:
p.staticShow()

------------------------------------------

对象的初始化问题:

构造__init__和析构__del__函数

系统自动调用

python规定:类中只能有一个构造函数

__init__(self,n="",g="",a=0)可以这样定义默认值实现初始化,类似函数重载。

-------有个重点:

在构造方法函数和析构方法函数中,参数返回值应注意!

举例:

class Person:

    def __init__(self, n):
         

    def __del__(self):

         

    def show(self):

    

p = Person("James")

p.show()

print(p)

结果如何?

在执行p=Person()语句是建立一个Person对象实例p,于是自动调用__init__函数,并向这个函数传递两个参数,一个是对象实例p传递给self,一个是"James"传递给n,于是__init__可以看到:

__init__ <__main__.Person ……>这个是p对象的内存地址,切记。

p.show()是通过实例调用的,所以p实例传递给函数show的self参数,其中self地址和p是一样的,是同个对象。

记住,类的实例方法都至少有一个参数,第一个参数通常命名为self。

---------------------------------------------

类的派生和继承:举例说明

class Student(Person):

    def __init__(self,name,gender,age,major,dept):

          Person.__init__(self,name,gender,age)       --->(继承类构造函数,python不会自动调用。要专门调用)

          self.major = major

          self.dept = dept

     def show(self):

          Person.show(self,"")               ----->使用基类名称调用

             print(self.major,self.dept)

s=student("","","","","") 

s.show() 

-------------------------------------------------

方法和属性继承

……传递关系,先找到自己类,再找上一级的类,直到基类

 

--------------------------

这里类的基础知识也就差不多了,可以做个学生信息管理系统作为练手项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值