码迷,mamicode.com
首页 > 编程语言 > 详细

python:类的特殊成员方法

时间:2018-01-12 00:07:07      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:set   war   对象   特殊成员   cal   result   item   class   模块   

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

__author__ = "Samson"

class Foo:
‘‘‘描述类的信息‘‘‘
country = "China"
def __init__(self,name):
self.name = name

def func(self):
pass

def __call__(self, *args, **kwargs):
print("running all",args,kwargs)

def __str__(self):#当实例过多时,可以确定是哪个实例
return "obj:%s" %self.name
#__getitem__,__setitem__,__delitem__用于索引操作,如字典。分别表示获取、设置、删除数据
def __getitem__(self, key):
print("__getitem__",key)

def __setitem__(self, key, value):
print("__getitem__",key,value)

def __delitem__(self, key):
print("__delitem__",key)
print(Foo.__doc__)#__doc__表示类的描述信息
obj = Foo("samson")
print(obj.__module__,obj.__class__)#__module__表示当前操作的对象在哪个模块,__class__表示当前操作对象的类是什么
obj()#执行__call__
print(obj.__dict__)#打印类里的所有属性,不包括实例属性
print(Foo.__dict__)#打印所有实例属性,不包括类属性
print(obj)
result = obj["k1"]#自动触发执行__getitem__
obj["k2"] = "samson"#自动触发执行__setitem__
del obj["k1"]#自动触发执行__delitem__


#另外一种类的高B格写法,一切皆对象
def __init__(self,name,age):
self.name = name
self.age = age

def func(self):
print("B格够高吗")

Zoo = type("Zoo",(object,),{"talk":func,"__init__":__init__})#第二个参数继承的父类,第三个为类的成员方法
f = Zoo("samson",20)
f.talk()

(未完待续)

python:类的特殊成员方法

标签:set   war   对象   特殊成员   cal   result   item   class   模块   

原文地址:https://www.cnblogs.com/cansun/p/8270837.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!