首页 > 编程语言 > 详细

python--class(类)随笔

时间:2020-01-10 15:47:49      阅读:90      评论:0      收藏:0      [点我收藏+]

  

  python也看了有一阵子,基础知识不详细做笔记了。这两天在看class类的一些资料,也写了一些小例子。

  

  python中的类具有的属性:成员变量,方法函数。先说分类,最后再分享一串我自己撸的代码。

  成员变量可以按照作用域和属性的不同,可以分为:类变量(类属性或者静态变量),实例变量,局域变量;这里实例变量还可以细分为:普通变量,保护变量,私有变量。

  方法函数可以分为:系统方法,实例方法,类方法,静态方法;同样的,实例方法可以分为:普通方法,私有方法,静态方法(静态方法比较特殊,所以需要拿出来单独说,这里说的实例方法指可以用self实例去调用的)。

   先来说说变量:

   在我看来,实例变量就是在__init__函数中声明的变量,这种变量直接被实例self调用;细分之后的普通变量,保护变量,私有变量之类的,

class Student:
# school=‘XX中学‘
#属性
#__init__系统函数
def __init__(self,name,great,num):
#普通属性
self.name = name
#保护属性
self._great = great
#私有属性
self.__num = num
def printNum(self,num):
num1=num
print("数字:"+num1)
  如上,school是类变量,也称为静态变量,所有实例对象共用一个school变量;当然,你也可以在__init__函数中再次声明一个school变量并传参赋值(self.school=s),此时定义的school是成员变量;
但是记住:这两个school不是同一个“东西”,使用self.school的时候,你用到的值是s,这是因为使用self访问时,是自下而上去访问成员变量的,取用访问到的第一个;如果你想访问的是类变量school,可以使
用类名进行访问:Student.school;
  至于局域变量,可以理解为是在普通函数中声明的变量,如:num1;仅在函数printNum()中可以使用,无法在函数外部调用;
  成员变量仅介绍这么多,细分下去私有变量、保护变量的使用与类的继承之间的关系balabala,太多了不想记(主要还是懒的研究)。
  变量的访问:
student1 = Student(‘tom‘,2,10010)
print(student1.name,student1._great,student1._Student__num)
print(Student.school)

输出结果:
tom 2 10010
XX中学

  趁热打铁,再说说方法函数:(时隔两天的趁热打铁)
  python的类方法,一般都代用参数self或cls等,但是静态方法的定义与普通函数基本相同,可以不用强制传参数self或cls
  
class Student:
school=‘XX中学‘
#属性
#__init__系统函数
def __init__(self,name,great,num):
#普通属性
self.name = name
#保护属性
self._great = great
#私有属性
self.__num = num

def printNum(self,num):
num1=num
print("数字"+num1)


#__printPrivate 系私有函数,外部无法调用
def __printPrivate(self):
print("这是一个私有函数")

def _printProtect(self):
print("这是一个保护函数")

@staticmethod
def staticMethod():
print("这是一个静态方法")

@classmethod
def classs_print(cls):
print("这是一个类方法")


定义如上;只是个简单例子,调用还是用实例student1,具体调用如下:
#私有函数调用方法
student1._Student__printPrivate()

#保护函数
student1._printProtect()
#静态函数
student1.staticMethod()
#类函数
Student.classs_print()


 

 

  

 

  

python--class(类)随笔

原文:https://www.cnblogs.com/nickWen-noteAndShare/p/12129473.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!