运维开发网

2018.12.7python笔记(3.3-3.5)

运维开发网 https://www.qedev.com 2020-03-11 16:41 出处:51CTO 作者:wuyinchen
3.3类的属性总结类属性,也是共有属性类的私有属性对象的共有属性对象的私有属性内置属性函数的局部变量全局变量#!/usr/bin/python#coding:utf8classMyClass(object):var1='类属性,类的公有属性var1'var2='类的私有属性var2'deffunc1(self):self.var3='对象的公有属性var3'self

3.3 类的属性总结

类属性,也是共有属性

类的私有属性

对象的共有属性

对象的私有属性

内置属性

函数的局部变量

全局变量

#!/usr/bin/python

#coding:utf8

class MyClass(object):

var1='类属性,类的公有属性 var1'

var2 = '类的私有属性 var2'

 def func1(self):
   self.var3 = '对象的公有属性 var3'
   self.__var4 = '对象的私有属性 var4'
   var5 = '函数的局部变量'   不能在类外访问

mc = MyClass()

print mc._MyClassvar2 通过对象来访问私有属性

mc.var1 访问类的公有属性\

mc.func1()

mc.var3 对象的公有属性只能在方法调用后才能访问

mc1 = MyClass() 再实例化一个对象

mc1.var3 无法访问 因为mc1还没有调用func1方法

print MyClass.var1 通过类访问公有属性

print MyClass.var2 报错,通过类无法访问私有属性

通过类也无法访问方法中的属性

def func2(self): 在类内部再定义一个方法

print self.var1 可以访问类属性

print self.__var2 可以访问类的私有属性

print self.var3 调用func1()后才能访问 var3

print var5 报错,不能访问另一个方法的局部变量,全局变量才能被方法访问

print mc.dict 打印类的内置属性

{'_MyClass__var4': '\xe5\xaf\xb9\xe8\xb1\xa1\xe7\x9a\x84\xe7\xa7\x81\xe6\x9c\x89\xe5\xb1\x9e\xe6\x80\xa7 var4', 'var3': '\xe5\xaf\xb9\xe8\xb1\xa1\xe7\x9a\x84\xe5\x85\xac\xe6\x9c\x89\xe5\xb1\x9e\xe6\x80\xa7 var3'}

print MyClass.dict 通过类调用内置属性

3.4 类的方法总结

•公有方法

•私有方法

•类方法

•静态方法

•内置方法

#!/usr/bin/python

coding:utf8

class MyClass(object):

name = 'Test'

def init(self):

self.func1()

self.__func2()

 def func1(self):
     print self.name
     print "我是公有方法"
     self.__func2()    在公有方法中调用私有方法

 def __func2(self):
     print self.name
     print "我是私有方法"

 def classFun(self):
     print self.name
     print "我是类方法"

  @staticmethod 定义静态装饰器
 def staticFun():
     print MyClass.name  只能通过类来引用
     print "我是静态方法"

mc = MyClass()

mc.func1()

MyClass.classFun() 调用类方法

MyClass.staticFun() 调用类的静态方法

0

精彩评论

暂无评论...
验证码 换一张
取 消