python属性和方法的区别是什么
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
对象的创建
创建对象的过程称之为实例化;当一个对象被创建后,包含三个方面的特性:对象句柄、属性和方法。
句柄用于区分不同的对象
对象的属性和方法与类中的成员变量和成员函数对应
obj=MyClass() //创建类的一个实例(对象)通过对象来调用方法和属性
类的属性
类的属性按使用范围:公有属性和私有属性,
类的属性范围取决于属性的名称。
公有属性:在类中和类外都能调用属性。
私有属性:不能在类外及被类意外的函数调用。
定义方式:以“_”双下划线开始的成员变量就是私有属性
私有属性,可以通过instance._classname_attribute方式访问。
内置属性:有系统在定义类的时候默认添加的,由前后双下划线构成,dict,module.
#!/usr/bin/env python
#--coding:utf-8--
#@Time : 2018/1/11 15:48
#!@Auther:bestsky
#!@File :demon1-class attributes.py
class People(object):
color = "yellow"
__age = 30 #私有属性
def think(self):
self.color = "black"
print ("I am a %s" %self.color)
# print self.__age
ren = People()
print ren
print ren.color
ren.think()
print ren._People__age #私有属性调用方法,建议:仅程序测试使用
类的方法
方法的定义和函数一样,但是需要self作为第一个参数
类的方法为:
公有方法
公有方法:在类中和类外都能调用的方法
私有方法
私有方法:不能被类外部调用,在方法前面加上“__“双下划线就是私有方法;
类方法
类方法:被classmethod()函数处理过的函数,能被类所调用,也能被对象所调用(是继承的关系)
静态方法
静态方法:相当于“全局函数”,可以被类直接调用,可以被所有实例化对象共享,通过staticmethod()定义, 静态方法没有“self”参数。
self参数
用于区分函数和类的方法(必须有一个self),self参数表示执行对象本身。
问题来源于python学习网