zoukankan      html  css  js  c++  java
  • python学习笔记(五)

    面向对象方法

    元组的二义性:不明确参数代表的含义

    circle=(2,4,6)
    def distance_from_origin(x,y):
    	return "返回x,y坐标"
    def edge_distance_from_origin(x,y,radio):
    	return "返回 x,y,radio"
    >>> distance_from_origin(*circle[:2])
    '返回x,y坐标'
    >>> edge_distance_from_orgin(*circle)
    '返回 x,y,radio' 

    通过使用指定的元组,解决货值元组顺序的问题以及使用元组拆分的问题

    >>> Person=collections.namedtuple("Person",'name age sex')
    >>> p=Person("tsui",18,'man')
    >>> p
    Person(name='tsui', age=18, sex='man')
    

     附加方法的实现(应避免使用两个_来头来命名方法)

    +   -->__add__()

    len -->__len__()

    -   -->__sub__()

    python中的类从object衍生而来

    子类中任何方法都可能被重写

    使用super()调用父类方法

    自定义类

    语法:

      class className:

        suite

      class className(base_classes):

        suite

    pass 代表空语句,什么也不做

    属性和方法

    Person类

    class Person:
    	def __init__(self, name="",age=0,sex="man"):
    		self.name = name
    		self.age=age
    		self.sex=sex
    
    	def __eq__(self,other):
    		return self.name==other.name and self.age==other.age and self.sex==other.sex
    		
    	def __str__(self):
    		return "{0.x!r},{0.y!r}".format(self)
    
    	def Speak(self):
    		print("{0.name} say i'm {0.age} ".fromat(self))
    

      

    import Animal
    
    a=Animal.Person(name="hiuyeung",age=18,sex="man")
    if a.name=="hiuyeung":
    	print(" good guy !")
    else:
    	print(" bad guy !")
    

    在对方法进行调用时,python会自动提供一个参数,对对象本身的引用self,所有对象属性都必须由self进行限定。

    对象创建过程

    1,调用__new__(),(自身的或者父类的)

    2,调用__init__()

  • 相关阅读:
    hdoj Last non-zero Digit in N! 【数论】
    spin_lock & mutex_lock的差别?
    20140514,微软5月14日公布8个安全补丁
    教你用笔记本破解无线路由器password
    SSL工作原理
    MS-SQLSERVER中的MSDTC不可用解决方法
    grub2手动引导ubuntu
    用递归翻转一个栈 Reverse a stack using recursion
    腾讯面试
    AngularJS移动开发中的坑汇总
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/6897581.html
Copyright © 2011-2022 走看看