note | 3 面向对象1

引例:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

class Employee: '所有员工的基类'

       empCount = 0

        def __init__(self, name, salary):

            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


"创建 Employee 类的第一个对象"

emp1 = Employee("Zara", 2000)

"创建 Employee 类的第二个对象"

emp2 = Employee("Manni", 5000)

emp1.displayEmployee()

emp2.displayEmployee()

print "Total Employee %d" % Employee.empCount

1. __init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法

2. self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

1.创建类

class ClassName:

        '类的帮助信息' #类文档字符串 

        class_suite #类体

2.创建实例对象

"创建 Employee 类的第一个对象"

emp1 = Employee("Zara", 2000)

3.访问属性

1.使用点号 . 来访问对象的属性

emp1.displayEmployee()

emp2.displayEmployee()

2.也可以使用以下函数的方式来访问属性:

getattr(obj, name[, default]) : 访问对象的属性。

hasattr(obj,name) : 检查是否存在一个属性。

setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性。

delattr(obj, name) : 删除属性。

3.Python内置类属性

__dict__ : 类的属性(包含一个字典,由类的数据属性组成)

__doc__ :类的文档字符串

__name__: 类名

__module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)

__bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)

4.类的属性和方法

1. 私有属性:为了让方法或特性私有,只需在名字前加双下划线 __

    无法从外界使用,但类的内部依旧可以访问

Python不允许实例化的类访问私有数据,但你可以使用 object._className__attrName( 对象名._类名__私有属性名 )访问属性,参考以下实例:

class Runoob:

   __site = "www.runoob.com"


runoob = Runoob()

print runoob._Runoob__site

2. 类的方法

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容