-
对象转换成字符串的魔术方法
__str__ 把对象转换成适合人看的字符串
__repr__ 把对象转换成适合机器看的字符串
__unicode__ 转换的编码
展现对象属性魔术方法 __dir__
查看全部 -
def __getattribute__(self, name):
return super(Programer, self).__getattribute__(name)
def __setattr__(self, name, value):
self.__dict__[name] = value
查看全部 -
对象实例化的过程
查看全部 -
类的继承
子类的类型判断
isinstance
issubclass
查看全部 -
类的继承
super(B, self).method(arg)
查看全部 -
@classmethod
@property
查看全部 -
#Python有垃圾回收机制,会自动调用__del__()方法
class Programer(object):
def __new__(cls,*args,**kwargs):
print ('call __new__ method')
print(args)
return super(Programer,cls).__new__(cls)#object() takes no parameters 不需要参数
def __init__(self,name,age):
print ('call __init__ metod')
self.name = name
setattr(self,"name",name)
pass
programer = Programer("Test",20)
print (programer.__dict__)查看全部 -
__setattr__,__getattribute__无限递归
查看全部 -
# -*- coding: utf-8 -*-
class Programer(object):
def __init__(self,name,age):
self.name = name
if isinstance(age,int):
self.age=age
else:
raise Exception('age must be int')
def __eq__(self, other):
if isinstance(other,Programer):
if self.age == other.age:
return True
else:
return False
else:
raise Exception('The type of object must be Programer')
def __add__(self,other):
if isinstance(other,Programer):
return self.age + other.age
else:
raise Exception('The type of object must be Programer')
if __name__=='__main__':
p1 = Programer('Albert',25)
p2 = Programer('Bill',30)
print(p1==p2)
print(p1+p2)
查看全部 -
函数和方法的区别
查看全部 -
直接在类里定义:这个类的所有对象,属性都是一样的
在构造函数里定义:在构造对象的时候把值传进去,每个对象的属性不太相同
在属性名前面加两个__会改变属性名的属性。
查看全部 -
没用过python,但是老师重原理,感觉还是挺不错的查看全部
-
__setattr__()查看全部
-
比较运算符
__cmp__(self,other) __eq__(self,other) __lt__(self,other) __gt__(self,other)
查看全部 -
class Programer(object): def __init__(self,name,age) self.name = name self.age = age
查看全部
举报