473,792 Members | 3,076 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Understanding python functions - Instant Python tutorial

Hi:

I have begun learning Python by experimenting with the code snippets here:

http://hetland.org/writing/instant-python.html

In the section on functions, Magnus Lie Hetland writes:

--------------------------------------------------------------------
For those of you who understand it: When you pass a parameter to a
function, you bind the parameter to the value, thus creating a new
reference. If you change the “contents” of this parameter name (i.e.
rebind it) that won’t affect the original. This works just like in Java,
for instance. Let’s take a look at an example:

def change(some_lis t):
some_list[1] = 4

x = [1,2,3]
change(x)
print x # Prints out [1,4,3]

As you can see, it is the original list that is passed in, and if the
function changes it, these changes carry over to the place where the
function was called. Note, however the behaviour in the following example:

def nochange(x):
x = 0

y = 1
nochange(y)
print y # Prints out 1

Why is there no change now? Because we don’t change the value! The value
that is passed in is the number 1 — we can’t change a number in the same
way that we change a list. The number 1 is (and will always be) the
number 1. What we did do is change the contents of the local variable
(parameter) x, and this does not carry over to the environment.
--------------------------------------------------------------------

What this looks like to me is what would happen if in C I passed a
pointer to the list x to the function change(), as in:

change(&x);

Thus the function could change the original list.

I don't understand Hetland's terminology though, when he is speaking of
"binding" and "reference. " Actually, Hetland's entire first paragraph
is unclear.

Can anyone reword this in a way that is understandable?
Thanks.


--
Good day!

_______________ _______________ __________
Christopher R. Carlen
Principal Laser&Electroni cs Technologist
Sandia National Laboratories CA USA
cr************* **@BOGUSsandia. gov
NOTE, delete texts: "RemoveThis " and
"BOGUS" from email address to reply.
Jul 13 '07 #1
13 3026
En Thu, 12 Jul 2007 21:51:08 -0300, Chris Carlen
<cr************ ***@BOGUSsandia .govescribiĂł:
Hi:

I have begun learning Python by experimenting with the code snippets
here:

http://hetland.org/writing/instant-python.html

In the section on functions, Magnus Lie Hetland writes:

--------------------------------------------------------------------
For those of you who understand it: When you pass a parameter to a
function, you bind the parameter to the value, thus creating a new
reference. If you change the “contents” of this parameter name (i.e.
rebind it) that won’t affect the original. This works just like in Java,
for instance. Let’s take a look at an example:

def change(some_lis t):
some_list[1] = 4

x = [1,2,3]
change(x)
print x # Prints out [1,4,3]

As you can see, it is the original list that is passed in, and if the
function changes it, these changes carry over to the place where the
function was called. Note, however the behaviour in the following
example:

def nochange(x):
x = 0

y = 1
nochange(y)
print y # Prints out 1

Why is there no change now? Because we don’t change the value! The value
that is passed in is the number 1 — we can’t change a number in the same
way that we change a list. The number 1 is (and will always be) the
number 1. What we did do is change the contents of the local variable
(parameter) x, and this does not carry over to the environment.
--------------------------------------------------------------------

What this looks like to me is what would happen if in C I passed a
pointer to the list x to the function change(), as in:

change(&x);

Thus the function could change the original list.

I don't understand Hetland's terminology though, when he is speaking of
"binding" and "reference. " Actually, Hetland's entire first paragraph
is unclear.

Can anyone reword this in a way that is understandable?
First, see this short article http://effbot.org/zone/python-objects.htm

Now, forget about C "variables" and "pointers" because you won't get much
far with those concepts.
Objects exist - and we usually use names to refer to them. This line:

a = 1

means "make the name 'a' refer to the object 1", or, "bind the name 'a' to
the instance of type int with value 1", or "let 'a' be a reference to the
object 1"

This line:

some_list[1] = 4

means "make the second element of some_list refer to the object 4", or
"alter some_list so its element [1] is a reference to the object 4"

bind the name 'a' to the instance of type int with value 1", or "let 'a'
be a reference to the object 1"

Note that some objects are immutable - like the number 1, which will
always be the number 1 (*not* an integer "variable" that can hold any
integer value). Other objects -like lists and dictionaries, by example, or
most user defined classes- are mutable, and you can change its contents
and properties. Modifying an object is not the same as rebinding its name:

x = [1,2,3]
y = x
x[1] = 4
print x # [1, 4, 3]
print y # [1, 4, 3]

x = [1,2,3]
y = x
x = [1,4,3]
print x # [1, 4, 3]
print y # [1, 2, 3]

You can test is two names refer to the same object using the is operator:
x is y. You will get True in the first case and False in the second case.

--
Gabriel Genellina

Jul 13 '07 #2
Chris Carlen <cr************ ***@BOGUSsandia .govwrites:
I don't understand Hetland's terminology though, when he is speaking
of "binding" and "reference. " Actually, Hetland's entire first
paragraph is unclear.

Can anyone reword this in a way that is understandable?
I've had some success with the following way of thinking about it.

Some languages have "variables" , which act like boxes that have names
etched on the side. Once created, the box can contain an object, and
it can be inspected while in the box; to change the variable, you
throw out the object and put a different object in the same box.

That's not how Python works. Every value is an object; the assignment
operator binds a name to an object. This is more like writing the name
on a sticky-note, and sticking it onto the object.

* The object itself doesn't change or "move".

* The object can be referred to by that name, but isn't "inside" the
name in any way.

* Assigning multiple names to the same object just means you can
refer to that same object by all those names.

* When a name goes away, the object still exists -- but it can't be
referred to if there are no longer any names left on it.

* Assigning a different object to an existing name just means that
the same sticky-note has moved from the original object to the new
one. Referring to the same name now references a different object,
while the existing object keeps all the other names it had.

When you pass an object as a parameter to a function, the object
receives a new sticky-label: the parameter name under which it was
received into the function scope. Assignment is an act of binding a
name to an object; no new object is created, and it still has all the
other names it had before.

When the function ends, all the names that were created inside that
function's scope disappear; but the objects still exist under any
names they had previously, and if you use those names you'll be
looking at the same object as was manipulated inside the function.

When the object has lost all its names -- for example, they've
disappeared because the scope they were in has closed, or they've been
re-bound to other objects -- they can no longer be referenced. At some
point after that, the automatic garbage collection will clean that
object out of memory.
This sticky-note analogy, and the behaviour described, is what is
meant by "references ". A name refers to an object; changing the object
means that by referring to that same object under its different names,
you will see the same, modified, object.

In Python, all names are references to objects. The assignment
operator '=' doesn't create or change a "variable"; instead, it binds
a name as reference to an object. All functions receive their
parameters as the existing object with a new name -- a reference to
that object, just like any other name.
Hope that helps.

--
\ "If you ever teach a yodeling class, probably the hardest thing |
`\ is to keep the students from just trying to yodel right off. |
_o__) You see, we build to that." -- Jack Handey |
Ben Finney
Jul 13 '07 #3
Gabriel Genellina wrote:
En Thu, 12 Jul 2007 21:51:08 -0300, Chris Carlen
<cr************ ***@BOGUSsandia .govescribiĂł:
>http://hetland.org/writing/instant-python.html
I don't understand Hetland's terminology though, when he is speaking of
"binding" and "reference. " Actually, Hetland's entire first paragraph
is unclear.
First, see this short article http://effbot.org/zone/python-objects.htm
I'll have a look.
Now, forget about C "variables" and "pointers" because you won't get
much far with those concepts.
Ok, painful, but I'll try.
Objects exist - and we usually use names to refer to them. This line:

a = 1

means "make the name 'a' refer to the object 1", or, "bind the name 'a'
to the instance of type int with value 1", or "let 'a' be a reference
to the object 1"

This line:

some_list[1] = 4

means "make the second element of some_list refer to the object 4", or
"alter some_list so its element [1] is a reference to the object 4"

bind the name 'a' to the instance of type int with value 1", or "let
'a' be a reference to the object 1"

Note that some objects are immutable - like the number 1, which will
always be the number 1 (*not* an integer "variable" that can hold any
integer value). Other objects -like lists and dictionaries, by example,
or most user defined classes- are mutable, and you can change its
contents and properties. Modifying an object is not the same as
rebinding its name:

x = [1,2,3]
y = x
x[1] = 4
print x # [1, 4, 3]
print y # [1, 4, 3]
Thanks to your explanation, I understand!
x = [1,2,3]
y = x
x = [1,4,3]
print x # [1, 4, 3]
print y # [1, 2, 3]

You can test is two names refer to the same object using the is
operator: x is y. You will get True in the first case and False in the
second case.
I don't quite get this "x is y" stuff yet.

Let's go back the statement:

x = [1,2,3]

Do we then say: "[1,2,3] is x" or is it the other way around: "x is
[1,2,3]" ???

I think it is the former in Python, whereas it would be the latter in C.

So Python is like saying "I am Chris Carlen."

This is actually completely ridiculous, since I am me, not my name. The
name refers to me. I get that. Yet our spoken language puts it in a
way which is backwards.
Thanks for the input.

--
Good day!

_______________ _______________ __________
Christopher R. Carlen
Principal Laser&Electroni cs Technologist
Sandia National Laboratories CA USA
cr************* **@BOGUSsandia. gov
NOTE, delete texts: "RemoveThis " and
"BOGUS" from email address to reply.
Jul 13 '07 #4
Ben Finney wrote:
Chris Carlen <cr************ ***@BOGUSsandia .govwrites:

def change(some_lis t):
some_list[1] = 4

x = [1,2,3]
change(x)
print x # Prints out [1,4,3]
---
def nochange(x):
x = 0

y = 1
nochange(y)
print y # Prints out 1
>>I don't understand Hetland's terminology though, when he is speaking
of "binding" and "reference. " Actually, Hetland's entire first
paragraph is unclear.

Can anyone reword this in a way that is understandable?

I've had some success with the following way of thinking about it.

Some languages have "variables" , which act like boxes that have names
etched on the side. Once created, the box can contain an object, and
it can be inspected while in the box; to change the variable, you
throw out the object and put a different object in the same box.
Yes, so y = x takes a copy of the stuff in the x box and puts it in the
y box. Which is what really happens in the hardware.
That's not how Python works. Every value is an object; the assignment
operator binds a name to an object. This is more like writing the name
on a sticky-note, and sticking it onto the object.

* The object itself doesn't change or "move".

* The object can be referred to by that name, but isn't "inside" the
name in any way.

* Assigning multiple names to the same object just means you can
refer to that same object by all those names.

* When a name goes away, the object still exists -- but it can't be
referred to if there are no longer any names left on it.

* Assigning a different object to an existing name just means that
the same sticky-note has moved from the original object to the new
one. Referring to the same name now references a different object,
while the existing object keeps all the other names it had.
Excellent description. This understandable to me since I can envision
doing this with pointers. But I have no idea how Python actually
implements this. It also appears that I am being guided away from
thinking about it in terms of internal implementation.
When you pass an object as a parameter to a function, the object
receives a new sticky-label: the parameter name under which it was
received into the function scope. Assignment is an act of binding a
name to an object; no new object is created, and it still has all the
other names it had before.
Ok, so I can understand the code above now.

In the first case I pass the reference to the list to change(). In the
function, some_list is another name referring to the actual object
[1,2,3]. Then the function changes the object referred to by the second
element of the list to be a 4 instead of a 2. (Oh, the concept applies
here too!) Out of the function, the name x refers to the list which has
been changed.

In the second case, y refers to a '1' object and when the function is
called the object 1 now gets a new reference (name) x inside the
function. But then a new object '0' is assigned to the x name. But the
y name still refers to a '1'.

I get it. But I don't like it. Yet. Not sure how this will grow on me.
When the function ends, all the names that were created inside that
function's scope disappear; but the objects still exist under any
names they had previously, and if you use those names you'll be
looking at the same object as was manipulated inside the function.

When the object has lost all its names -- for example, they've
disappeared because the scope they were in has closed, or they've been
re-bound to other objects -- they can no longer be referenced. At some
point after that, the automatic garbage collection will clean that
object out of memory.

This sticky-note analogy, and the behaviour described, is what is
meant by "references ". A name refers to an object; changing the object
means that by referring to that same object under its different names,
you will see the same, modified, object.

In Python, all names are references to objects. The assignment
operator '=' doesn't create or change a "variable"; instead, it binds
a name as reference to an object. All functions receive their
parameters as the existing object with a new name -- a reference to
that object, just like any other name.

Hope that helps.

A great deal of help, thanks. Excellent explanation. Wow. This is
strange. A part of me wants to run and hide under the nearest 8-bit
microcontroller . But I will continue learning Python.

--
Good day!

_______________ _______________ __________
Christopher R. Carlen
Principal Laser&Electroni cs Technologist
Sandia National Laboratories CA USA
cr************* **@BOGUSsandia. gov
NOTE, delete texts: "RemoveThis " and
"BOGUS" from email address to reply.
Jul 13 '07 #5
Wildemar Wildenburger wrote:
x = [1, 2, 3]
y = [1, 2, 3]
id(x), id(y)
x == y
x is y
Ooops!

Make that:

x = [1, 2, 3]
y = [1, 2, 3]
id(x); id(y)
x == y
x is y

(had to be a semicolon there)
Jul 13 '07 #6
On 7/13/07, Chris Carlen <cr************ ***@bogussandia .govwrote:
Ben Finney wrote:
Chris Carlen <cr************ ***@BOGUSsandia .govwrites:
That's not how Python works. Every value is an object; the assignment
operator binds a name to an object. This is more like writing the name
on a sticky-note, and sticking it onto the object.

* The object itself doesn't change or "move".

* The object can be referred to by that name, but isn't "inside" the
name in any way.

* Assigning multiple names to the same object just means you can
refer to that same object by all those names.

* When a name goes away, the object still exists -- but it can't be
referred to if there are no longer any names left on it.

* Assigning a different object to an existing name just means that
the same sticky-note has moved from the original object to the new
one. Referring to the same name now references a different object,
while the existing object keeps all the other names it had.

Excellent description. This understandable to me since I can envision
doing this with pointers. But I have no idea how Python actually
implements this. It also appears that I am being guided away from
thinking about it in terms of internal implementation.
I assume that you're familiar with the general concept of hash tables.
Scopes in Python are hash tables mapping strings to Python objects.
Names are keys into the hash table.

a = 10

is the same as
currentScope["a"] = 10

print a

is the same as
print currentScope["a"]

As you can see, there's no way that assignment can result in any sort
of sharing. The only way that changes can be seen between shared
objects is if they are mutated via mutating methods.

Python objects (the values in the hashtable) are refcounted and can be
shared between any scope.
When you pass an object as a parameter to a function, the object
receives a new sticky-label: the parameter name under which it was
received into the function scope. Assignment is an act of binding a
name to an object; no new object is created, and it still has all the
other names it had before.
Each scope is it's own hashtable. The values can be shared, but not
the keys. When you call a function, the objects (retrieved from the
callers local scope by name) are inserted into the functions local
scope, bound to the names in the function signature. This is what
Guido calls "call by object reference".
Ok, so I can understand the code above now.

In the first case I pass the reference to the list to change(). In the
function, some_list is another name referring to the actual object
[1,2,3]. Then the function changes the object referred to by the second
element of the list to be a 4 instead of a 2. (Oh, the concept applies
here too!) Out of the function, the name x refers to the list which has
been changed.

In the second case, y refers to a '1' object and when the function is
called the object 1 now gets a new reference (name) x inside the
function. But then a new object '0' is assigned to the x name. But the
y name still refers to a '1'.

I get it. But I don't like it. Yet. Not sure how this will grow on me.
You need to learn about Pythons scoping now, not it's object passing
semantics. When you're used to thinking in terms of pointers and
memory addresses it can take some work to divorce yourself from those
habits.
Jul 13 '07 #7
On Fri, 13 Jul 2007 18:49:06 +0200, Wildemar Wildenburger
<wi******@freak mail.dewrote:
>Wildemar Wildenburger wrote:
>x = [1, 2, 3]
y = [1, 2, 3]
id(x), id(y)
x == y
x is y
Ooops!

Make that:

x = [1, 2, 3]
y = [1, 2, 3]
id(x); id(y)
x == y
x is y

(had to be a semicolon there)
Not "had to be" since a discerning reader will note that the two
values in the list:
>>id(x), id(y)
(19105872, 19091664)

are different, and can guess that id() means "address of". But "nicer
to be" perhaps since it makes it even more clea rto discerning
readers, and more likely clear to others. ;-)
>>id(x); id(y)
19105872
19091664

wwwayne
Jul 13 '07 #8
Chris Mellon wrote:
On 7/13/07, Chris Carlen <cr************ ***@bogussandia .govwrote:
>Ben Finney wrote:
>>Chris Carlen <cr************ ***@BOGUSsandia .govwrites:
>>That's not how Python works. Every value is an object; the assignment
operator binds a name to an object. This is more like writing the name
on a sticky-note, and sticking it onto the object.

* The object itself doesn't change or "move".

* The object can be referred to by that name, but isn't "inside" the
name in any way.

* Assigning multiple names to the same object just means you can
refer to that same object by all those names.

* When a name goes away, the object still exists -- but it can't be
referred to if there are no longer any names left on it.

* Assigning a different object to an existing name just means that
the same sticky-note has moved from the original object to the new
one. Referring to the same name now references a different object,
while the existing object keeps all the other names it had.
Excellent description. This understandable to me since I can envision
doing this with pointers. But I have no idea how Python actually
implements this. It also appears that I am being guided away from
thinking about it in terms of internal implementation.

I assume that you're familiar with the general concept of hash tables.
Scopes in Python are hash tables mapping strings to Python objects.
Names are keys into the hash table.

a = 10

is the same as
currentScope["a"] = 10

print a

is the same as
print currentScope["a"]

As you can see, there's no way that assignment can result in any sort
of sharing. The only way that changes can be seen between shared
objects is if they are mutated via mutating methods.

Python objects (the values in the hashtable) are refcounted and can be
shared between any scope.
>>When you pass an object as a parameter to a function, the object
receives a new sticky-label: the parameter name under which it was
received into the function scope. Assignment is an act of binding a
name to an object; no new object is created, and it still has all the
other names it had before.

Each scope is it's own hashtable. The values can be shared, but not
the keys. When you call a function, the objects (retrieved from the
callers local scope by name) are inserted into the functions local
scope, bound to the names in the function signature. This is what
Guido calls "call by object reference".
This is, of course, something of an oversimplificat ion. First, the
global statement allows you to modify a name of module scope from inside
another scope such as a functions.
>
>Ok, so I can understand the code above now.

In the first case I pass the reference to the list to change(). In the
function, some_list is another name referring to the actual object
[1,2,3]. Then the function changes the object referred to by the second
element of the list to be a 4 instead of a 2. (Oh, the concept applies
here too!) Out of the function, the name x refers to the list which has
been changed.

In the second case, y refers to a '1' object and when the function is
called the object 1 now gets a new reference (name) x inside the
function. But then a new object '0' is assigned to the x name. But the
y name still refers to a '1'.

I get it. But I don't like it. Yet. Not sure how this will grow on me.

You need to learn about Pythons scoping now, not it's object passing
semantics. When you're used to thinking in terms of pointers and
memory addresses it can take some work to divorce yourself from those
habits.
Then, of course, there are the nested scoping rule for functions defined
inside other functions.

regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------

Jul 13 '07 #9
Chris Carlen a écrit :
(snip)
>
Excellent description. This understandable to me since I can envision
doing this with pointers. But I have no idea how Python actually
implements this.
The code source is freely available, and it's in C !-)
It also appears that I am being guided away from
thinking about it in terms of internal implementation.
Indeed. Python *is* a hi-level language, and it's main benefit (wrt to
lower-level languages like C or Pascal) is to let you think more in
terms of "what" than in terms of "how".
Jul 13 '07 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
2431
by: Mark | last post by:
Hello. I am new to programming and Python and was wondering if someone could help get me started. I picked Python to start learning to prgram because of some things I have read about it (easy to learn, object oriented, clear syntax, etc...). Can anyone assist in getting me started with learning to program and Python? Recommended reading material? Online tutorials? Recommended development tools (wxpython, pythonwin, etc...)? I am a...
0
1897
by: Kurt B. Kaiser | last post by:
Patch / Bug Summary ___________________ Patches : 241 open ( -6) / 2622 closed (+26) / 2863 total (+20) Bugs : 764 open ( +6) / 4453 closed (+38) / 5217 total (+44) RFE : 150 open ( +2) / 131 closed ( +0) / 281 total ( +2) New / Reopened Patches ______________________
10
1596
by: Danny | last post by:
Does anyone know of a good python tutorial? I was also looking for some non-trivial projects to do in python. Basically I would like to claim on my resume, that I know python, with out bad karma. Danny
24
2237
by: Christopher J. Bottaro | last post by:
This post is just the culmination of my thoughts and discussions with my coworkers on Python. If you are not interested, please skip over it. At my work, we are developing a product from scratch. It is completely modular and the modules communicate via SOAP. Because of that, we can implement individual modules in any language of our choosing (so long as they have good SOAP libs). I chose to do all mine in Python because I'm a huge...
7
1622
by: qwweeeit | last post by:
Hi all, beeing almost a newbie, I am trying to learn from experts. For that reason I am collecting examples of Python sources (and Pythonic way of programming...) on a CD, ready to be searched. By now, I extracted from web (using wget) all the examples of Cookbook Python (35 Mb!). After some polishing and merging I obtained 20 files (one for each Category), which sum up to 12 Mb). To this source repository, I want also add my own...
3
1807
by: Redefined Horizons | last post by:
I'm trying to understand the argument flags that are used in the method table of an extension module written in C. First let me ask this question about the method table. Is it an C array named "PyMethodDef"? Now, onto my questions about the arguments: I see that even when the Python function we are supplying takes no arguments, (the argument flag is METH_NOARGS), that we still pass the
14
350
by: Alberto Vieira Ferreira Monteiro | last post by:
Hi, I am new to Python, how stupid can be the questions I ask? For example, how can I add (mathematically) two tuples? x = (1,2) y = (3,4) How can I get z = (1 + 3, 2 + 4) ? Alberto Monteiro
5
1773
by: romiro | last post by:
Hi all, I'm a PHP5 developer looking to "broaden my horizons" so to speak by learning a new language. I emphasize the 5 in PHP since I have fully engrossed myself in the full OOP of version 5 with my own ground-up projects as well as some work with PRADO (http://pradosoft.com) I've dabbled with a number of languages in the past, Python being no exception, but always ended up coming back to PHP due to being comfortable with it. Python...
15
1674
by: silverburgh.meryl | last post by:
Hi, I am trying to understand the following line: # a is an integer array max(), (j,i)) Can you please tell me what that means, I think sum(a means find the some from a to a But what is the meaning of the part (j,i)?
0
9670
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9518
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10430
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10211
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10159
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
6776
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5560
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
3719
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2917
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.