python -- 面向对象-成员
class Person:
def __init__(self,name,gender,hobby):
self.name = name # 实例变量 对象里的变量
self.gender = gender
self.hobby = hobby s = Person('张三','男','打篮球') print(s.hobby) s.hobby = '踢足球' print(s.hobby)
2、类变量:变量属于类,但是对象也可以访问
class Person:
country = '中国' def __init__(self,name,gender):
self.name = name
self.gender = gender c = Person('Ann','女')
b = Person('Bob','男') print(Person.country)
c.country = '大清' # 大坑,没有修改类变量 print(c.country) # 类变量可以给对象使用
print(b.country)
class Computer:
#实例方法(成员方法)
def play(self):
print('电脑可以玩游戏')
# 在定义实例方法的时候,必须给出一个参数self
# 形参的第一个参数,自动的把对象给传递进来
def work(self): # self是当前类的对象
print(self)
print('电脑可以用来工作')
c = Computer()
c.work() # 调用的时候不需要手动的给出self
print(c)
class Person:
# 实例方法
def eat(self):
print('吃遍山珍海味') @classmethod # 装饰器,此时这个方法是一个类方法
def talk(cls): # 此时接收到的cls是类名
print('自言自语') # # 用对象访问
# s = Person()
# s.talk() # 在调用类方法的时候,默认的把类名传递给类方法
# print(Person) # 类方法一般用类名访问
Person.talk() # 类方法
class Quit:
@staticmethod
def meet():
print('会议保持安静')
# 静态方法可以使用对象访问,也可以使用类名访问,但是一般推荐使用类名访问
c = Quit()
c.meet()
# 推荐使用类名访问
Quit.meet()
class Person:
__qie = 'beauty'
def __init(self,name,secret):
self.name = name
self.__secret = secret # 私有内容 实例变量
def tell(self):
print(f"你的秘密是{self.__secret}")
print(Person.__qie) # 私有的类变量只能在类中调用
return self.__secret
def __dream(self): # 私有的实例方法
print('我的梦想是..')
@staticmethod
def __think():
print('小心思')
@classmethod
def __work(cls):
print('个人工作')
p =Person('zhangmeng','过去的生活')
# print(p.__secret) # 私有的内容只能在类中调用
#
# p.tell()
# print(Person.__qie)
# p.__dream()
# Person.__work()
class Person:
def __init__(self,name,hobby,birth):
self.name = name
self.hobby = hobby
self.birth = birth
# 年龄应该是算出来的,而不是直接存储 @property # 把一个方法更改成一个属性,每次拿属性的时候都会自动的去执行这个方法
# 方法的返回值就是属性值
def age(self): # 实例方法
print('我的年龄')
return 2018 - self.birth c = Person('zhangmeng','dance',1999)
# c.age
print(c.age) # 看着像一个变量一样使用,实际上这里是调用的一个方法 # c.age = 26 # 不可以,因为age是一个方法,不是一个变量
class Person:
__qie = 'beauty'
def __init(self,name,secret):
self.name = name
self.__secret = secret # 私有内容 实例变量
def tell(self):
print(f"你的秘密是{self.__secret}")
print(Person.__qie) # 私有的类变量只能在类中调用
return self.__secret
def __dream(self): # 私有的实例方法
print('我的梦想是..')
@staticmethod
def __think():
print('小心思')
@classmethod
def __work(cls):
print('个人工作')
p =Person('zhangmeng','过去的生活')
# print(p.__secret) # 私有的内容只能在类中调用
#
# p.tell()
# print(Person.__qie)
# p.__dream()
# Person.__work()
python -- 面向对象-成员的更多相关文章
- python 面向对象(成员,静态,类)的(变量,方法)区别
静态方法是使用@staticmethod装饰的方法,并且参数表中不需要self或者cls,可以访问类成员变量 默认的方法是有self的,是成员方法,可以访问私有变量和方法(通过self.xxx),或者 ...
- Python面向对象(成员修饰符)
day25 成员修饰符 class Foo: def __init__(self, name, age): self.name = name self.__age = age#私有,外部无法直接访问 ...
- Python面向对象(成员)(二)
1. 成员 在类中你能写的所有内容都是类的成员 2. 变量 1. 实例变量: 由对象去访问的变量. class Person: def __init__(self, name, id, gender, ...
- python 面向对象和类成员和异常处理
python 面向对象 你把自己想象成一个上帝,你要创造一个星球,首先你要把它揉成一个个球,两个直径就能创造一个球 class star: '''名字(name),赤道直径(equatorial di ...
- python面向对象(二)——类成员
Python面向对象 类成员 1.字段 普通字段 属于对象 静态字段 属于类 2.方法 普通方法 触发者是对象 括号里至少一个参数 se ...
- python 面向对象(类的特殊成员)
python 面向对象: (思维导图 ↑↑↑↑) 类的特殊成员 python的类成员存在着一些具有特殊含义的成员 1.__init__: 类名() 自动执行 __init__ class Foo(ob ...
- Python面向对象05 /私有成员、类方法、静态方法、属性、isinstance/issubclass
Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubclass 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/is ...
- python 面向对象专题(五):私有成员、类方法、静态方法、属性、isinstance/issubclass
https://www.cnblogs.com/liubing8/p/11325421.html 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubc ...
- 『无为则无心』Python面向对象 — 51、私有成员变量(类中数据的封装)
目录 1.私有成员变量介绍 (1)私有成员变量概念 (2)私有成员变量特点 (3)私有成员变量体验 2.属性私有化工作原理 3.定义成员变量的标识符规范 4.私有成员变量的获取和设置方式 1.私有成员 ...
随机推荐
- 对Java代码加密的两种方式,防止反编译
使用Virbox Protector对Java项目加密有两种方式,一种是对War包加密,一种是对Jar包加密.Virbox Protector支持这两种文件格式加密,可以加密用于解析class文件的j ...
- vue-cli 搭建的项目,无法用本地IP访问
项目是用vue-cli搭建的,是基于移动端的,需要在手机上测试的时候发现用ip访问不了,用localhost是可以访问的,网上查资料的解决办法(此为Mac机子的解决办法): 在config文件里面的i ...
- 二、认识Xcode(第一个工程:Hello world)
到一个未知的世界去冒险,怎么可以不熟悉自己的武器装备呢?况且我们现在也就Xcode这一样装备,攻击防御全靠它,要是关键时刻使不出技能,那不gg了? 所以接下来我们会大致介绍Xcode的常用界面,并在最 ...
- linux affinity
现在的CPU几乎都是多核,所以,分配给予进程相同数量的线程是合理的需求 但是,这些线程不一定就均匀跑在这些内核上 所以,我们要指派,“一个线程就运行在一个固定的CPU内核上” //test.c #de ...
- laravel自定义验证
1.在控制器中直接写验证$this->validate($request, [ 'video_ids' => [ function($attribute, $value, $fail) { ...
- 彻底解决(Microsoft Visual C++ 14.0 is required)的步骤123
之前要用协程gevent,安装pip install gevent包时遇到Microsoft Visual C++ 14.0 is required的报错提示,各种下载没有解决很头疼, 前两天安装sc ...
- John Deere Service Advisor EDL V2 Diagnostic Kit
Support Languages: English, French, German, Italian, Portuguese, Russian, Spanish. John Deere Servic ...
- 转——git常见使用命令及git原理
0.常用命令1 1.git中brunch的使用和理解(一定理解brunch的指针理解和分叉) 分支创建 Git 是怎么创建新分支的呢? 很简单,它只是为你创建了一个可以移动的新的指针. 比如,创建一个 ...
- Vue基础进阶 之 过渡效果
进入/离开过渡效果:Vue在插入.更新或移除DOM时,可以设置一些动画效果: 如何使用过渡效果:利用<transition></transition>组件将需要应用的过渡效果的 ...
- URIError: Failed to decode param '/%PUBLIC_URL%/favicon.ico'
今天搭建antd的项目结构,本来项目是一个基础react项目,结果执行 yarn create umi yarn yarn start 项目启动后访问突然报错URIError: Failed to d ...