面向对象进阶

Posted chenadong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象进阶相关的知识,希望对你有一定的参考价值。

class Foo(object):
	def __init__(self, name, age):
		self.name = name
		self.age = age

	def __getitem__(self, item):
		if hasattr(self, item):
			return self.__dict__[item]

	def __setitem__(self, key, value):
		self.__dict__[key] = value

	def __delitem__(self, key):
		del self.__dict__[key]


foo = Foo("adong", "28")
print foo["name"], foo["age"]

foo["height"] = "175"
print foo["height"]

del foo["height"]
print foo["height"]

>>>
adong 28
175
None

  

class F:
	def __init__(self, name):
		self.name = name

	def __new__(cls, *args, **kwargs):
		return object.__new__(cls)


f1 = F("adong")
f2 = F("aqiang")

print f1
print f2
>>>
<__main__.F instance at 0x0000000003A70E88>
<__main__.F instance at 0x0000000003A70E48>

# 实例化的结果是两个对象

  

class F:
	__instance = False

	def __init__(self, name):
		self.name = name

	def __new__(cls, *args, **kwargs):
		if cls.__instance:
			return cls.__instance
		else:
			cls.__instance = object.__new__(cls)
			return cls.__instance


f1 = F("adong")
f2 = F("aqiang")

print f1
print f2
>>>
<__main__.F instance at 0x0000000003A90E88>
<__main__.F instance at 0x0000000003A90EC8>


# 单例模式,但是地址不一样,不知道是哪里的问题

  

以上是关于面向对象进阶的主要内容,如果未能解决你的问题,请参考以下文章

java学习---面向对象进阶

python-前方高能-面向对象-进阶3

python-面向对象进阶

进阶面向对象

python学习笔记-面向对象进阶&异常处理

python学习笔记-面向对象进阶&异常处理