(21)类

* 创建类
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

class Person:
        def __init__(self,name,sex):
            self.name=name
            self.sex=sex

info = Person("John","male")
    print "info.name=",info.name
    print "info.sex=",info.sex
   
    用一个class关键词,后面跟一个类名
    def __init__(self)  是构造方法
   
* self
      在构造函数中的第一个参数self, 就是起到了这个作用——接收实例化过程中传入的所有数据
    self应该就是一个实例( 准确说法是应用实例) , 因为它所对应的就是具体数据
    很像其它语言中的this
   
* 子类
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

class Person:
        def __init__(self, name, lang, email):
            self.name = name
            self.lang = lang
            self.email = email
        def author(self):
            return self.name

class Programmer(Person): #继承父类Person
        def __init__(self, name, lang, email, system, website):
            Person.__init__(self,name,lang,email) #将Person.__init__()的功能继承到这里
            self.system = system #子类中不同于Person父类部分
            self.website = website

def pythoner(self):
            pythoner_list = [ self.name, self.lang, self.email, self.system, self.website ]
            return pythoner_list

if __name__=="__main__":
        writer = Person("qiwsir","Chinese","[email protected]")
        python = Programmer("qiwsir","Python","[email protected]","Ubutun","qiwsir.github.io")
        print "My name is:%s"%writer.author()
        print "I write program by:%s"%python.pythoner()[1]

* 命名空间
   import os 
   os 就是命名空间
  
* 私有方法
    不能从它们的模块外面被调用
    私有类不能从它们的类外面调用
    私有属性不能从它们的类外面调用
   
    类方法,属性名以两个下划线开始(但不是结束),它是私有的
   
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

class Person:
        def __init__(self,name):
            self.name = name
            print self.name

def __work(self,salary):
            print "%s salary is: %d"%(self.name,salary)

def worker(self):
            self.__work(500) #在类内部调用私有方法

if __name__=="__main__":
        officer = Person("Tom")
        officer.worker()
       
* 专有方法
   以双划线开头,又以双划线结尾

时间: 2024-10-26 16:30:14

(21)类的相关文章

Python类的特点 (2)

测试代码: 1 #encoding:utf-8 2 class Parent(object): 3 x=1 #x是Parent类的属性(字段) 4 ls=[1,2] #ls是一个列表,也是Parent类的属性(字段) 5 6 class Child1(Parent): 7 y=2 8 9 class Child2(Parent): 10 pass 11 12 if __name__=='__main__': 13 '''对于类属性:子类与父类的关系是,如果子类重写了继承的值就用子类自己的属性值,

(转载)OC学习篇之---类目的概念和使用

上一篇文章介绍了OC中的@class关键字的使用,这一篇我们介绍一下,OC中的一个特有的亮点:类目 首先我们来看一下场景,如果我们现在想对一个类进行功能的扩充,我们该怎么做? 对于面向对象编程的话,首先会想到继承,但是继承有两个问题: 第一个问题:继承的前提是这个类可以被继承,因为在Java中有些类是不允许继承的,定义成final类,同样的OC中也是有不可以继承的类. 第二个问题:这个类可以被继承,但是继承我们知道是侵入性的,就是我可能只是想实现一个功能,但是继承之后,子类就会把父类的所有功能(

java 类 中的构造器基本运用

1.基本概念: 构造器是类中的一个特殊方法,该方法在对象实例化时被调用.构造器的用途适当对象实例化时初始化对象的成员变量.当我们要为一个类添加构造器时南无构造器名称就必须和类的名称一致,并且不能声明返回值. 如我们给一个叫Student的类添加构造器: 1 /** 2 *Student类 3 */ 4 5 public class Student{ 6 public String studentName; //学生姓名 7 public int studentAge; //学生年龄 8 publ

C#命名空间与类和方法的认识

1 using System; 2 /// <summary> 3 /// 命名空间 4 /// </summary> 5 namespace myspace 6 { 7 /// <summary> 8 /// 命名空间中的类 9 /// </summary> 10 class myclass 11 { 12 13 static void Main(string[] a) 14 { 15 //string[] mybook = new string[] {

抽象类,派生类,继承

一.继承 继承是一种创建新的类的方式,在python中,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类. python中类的继承分为:单继承和多继承 class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass class SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClass1 pass class SubClass2(ParentCl

微信开发之SSM环境搭建

第一步:新建maven项目 如有需要,查看之前的文章:从配置mven环境到maven项目的新建 第二步:在pom.xml文件中加入jar包依赖 特别说明:由于项目需求不同,加入的jar包也不同,我这里是搭建起来作微信开发,并且这是微信开发中途写的,需要时自行抉择. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&

设计模式之适配模式

转自:http://www.cnblogs.com/java-my-life/archive/2012/04/13/2442795.html 适配器模式是把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极.阴极外,还有一个地极.而有些地方的电源插座却只有两极,没有地极.电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用.这时候一个三相到两相的转换器(适配器

python核心编程--笔记

python核心编程--笔记 的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找python路径 1.4 –v   冗余输出(导入语句详细追踪) 1.5 –m mod 将一个模块以脚本形式运行 1.6 –Q opt 除法选项(参阅文档) 1.7 –c cmd 运行以命令行字符串心事提交的python脚本 1.8 file   以给定的文件运行python脚本 2 _在解释器中表示最后

设计模式学习第一天:23种设计模式(全)

C#常见的设计模式 一.概要: 模式分为三种,设计模式.体系结构模式与惯用法.其中惯用法是一种语言紧密相关的模式,例如,定界加锁模式其实是一种惯用法. 在C#项目开发过程中,很多情况下您已经使用了某些模式,但或许您并不知道自己所使用的这种解决方案是一种已经被总结归纳的模式. 工厂.策略.桥接.模板方法.代理等等23种Gof经典模式是属于设计模式,设计模式的粒度相对较小,基本上用于提高模块内部的可扩展性和可维护性需求 三层.MVC.IoC/DI等属于体系结构模式,粒度比设计模式大,它是从项目的整体