首页 > 编程语言 > 详细

Python9_类

时间:2019-07-09 23:08:24      阅读:92      评论:0      收藏:0      [点我收藏+]

Class 类名(Object):


属性
初始化方法 __init__
其他方法
初始化方法不是必须的;
类的所有方法需要带上self参数;
没有构造函数,初始方法只是在实例化对象时会执行的方法;
self不是关键词,可以用其他单词代替,其代表类实例对象本身,不是类本身;
例如:类MyClass,类的实例myobject调用一个方法myobject.Method(arg1),
python会自动转为MyClass.Method(myobject, arg1)

 

类的属性带单下划线和双下划线

单下划线代表属性私有,但是在内部和外部都可以调用。相当于一种约定
双下划线一般情况下只能内部调用,外部不能调用,子类也不能调用。
但通过特殊的语法可以调用,原则上不用;

 

 

//类的定义
class Employee:
empCount = 0 //类变量,有些类似于静态变量,将在这个类的所有实例中共享

def __init__(self, name, salary):
//self代表类的实例,self在定义类的方法时必须有的,类的方法和普通函数的区别就在于必须要有额外的第一个参数self,
self.name = name
self.salary = salary
Employee.empCount +=1

def displayCount(self):
print "Total Employee %d" % Employee.empCount

def displayEmployee(self):
print "Name : ", self.name, ", Salary",self.salary


//类的实例化类似于函数调用的方式
emp1 = Employee("Zara",2000)


//可以用点号.来访问对象的属性
emp1.displayEmployee()


//甚至可以添加、删除、修改类的属性
emp1.age = 7 //添加age属性
emp2.age = 8 //修改age属性
del emp1.age //删除age属性


//内置类属性
__dict__ : 类的属性(包含一个字典,由类的数据属性组成)
__doc__ :类的文档字符串
__name__: 类名
__module__: 类定义所在的模块(类的全名是‘__main__.className‘,如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
__bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)


//python对象的销毁
Python 使用了引用计数这一简单技术来跟踪和回收垃圾。


//类的继承
面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。
通过继承创建的新类称为子类或派生类,被继承的类称为基类、父类或超类。

class 派生类名(基类名)
...


//类属性和方法
类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。
实例不能使用私有属性。只能使用self

 

 

类的方法
在类的内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数

类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,不能在类的外部调用。在类的内部调用 self.__private_methods

 


//单下划线、双下划线、头尾双下划线说明:
__foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的。

_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *

__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。

=====================================================

 

Python9_类

原文:https://www.cnblogs.com/grooovvve/p/11161012.html

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