zhangli-s 发表于 2018-8-16 10:15:00

python 之类变量和实例变量(简单谈一谈)

# -*- coding: utf-8 -*-  
"""
  
Created on Sun Nov 13 23:19:03 2016
  

  
@author: toby
  
"""
  

  
class Province:
  
    def __init__(self,name,capital,leadership):
  
      self.Name = name
  
      self.Capital = capital
  
      self.Leadership = leadership
  

  
hb = Province('hebei','shjiazhuang','liyang')
  
sd = Province('shandong','jinan','angshenghui')
  

  

  

  
'''
  
下几点说明:
  
1、self是神码东东?
  
接受对象本身hb,sd
  
2、'hebei','shjiazhuang','liyang'由 __init__()函数中的形惨name,capital,leadership负责接收
  
3、self.Name = name 是把形惨name中接受到的值赋值给self.Name
  
4、 self.Name中的这个Name可以自定义(比如换成aa都可以),那么是为了更清晰的直到其用途所以建议取一个有意义的名字
  
5、 'hebei','shjiazhuang','liyang'三个值想当是被封装进里实例化后的对象hb里
  
'''
  

  

  
#在类里声明一个类变量
  
class Province:
  
    memo = 'One of China\'s 23 provinces' #类变量,也可以说是静态字段
  
    def __init__(self,name,capital,leadership):
  
      self.Name = name #实例变量,属于对象的,也可称为动态字段
  
      self.Capital = capital
  
      self.Leadership = leadership
  

  
hb = Province('hebei','shjiazhuang','liyang') #相当于将'hebei','shjiazhuang','liyang'封装到了类的对象hb里边
  
sd = Province('shandong','jinan','angshenghui')
  

  
print hb.Name #打印对象属性
  
print Province.memo #打印类变量
  

  
#尝试通过类访问动态字典(静态类不能问访问动态字段)
  
print Province.Name #结果:报错,找不到该属性
  

  
#通过对象访问静态字段
  
print hb.memo#对象可以访问静态字段


页: [1]
查看完整版本: python 之类变量和实例变量(简单谈一谈)